/* Disable Titan-e multicast addresses. Returns: VXGE_HW_OK - success. VXGE_HW_ERR_INVALID_HANDLE - Invalid handle  */
enum vxge_hw_status vxge_hw_vpath_mcast_disable(struct __vxge_hw_vpath_handle *vp)
/* Disable Titan-e multicast addresses. Returns: VXGE_HW_OK - success. VXGE_HW_ERR_INVALID_HANDLE - Invalid handle  */
enum vxge_hw_status vxge_hw_vpath_mcast_disable(struct __vxge_hw_vpath_handle *vp)
{
	u64 val64;
	struct __vxge_hw_virtualpath *vpath;
	enum vxge_hw_status status = VXGE_HW_OK;
	if ((vp == NULL) || (vp->vpath->ringh == NULL)) {
		status = VXGE_HW_ERR_INVALID_HANDLE;
		goto exit;
	}
	vpath = vp->vpath;
	val64 = readq(&vpath->vp_reg->rxmac_vcfg0);
	if (val64 & VXGE_HW_RXMAC_VCFG0_MCAST_ALL_ADDR_EN) {
		val64 &= ~VXGE_HW_RXMAC_VCFG0_MCAST_ALL_ADDR_EN;
		writeq(val64, &vpath->vp_reg->rxmac_vcfg0);
	}
exit:
	return status;
}