Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke...
[pandora-kernel.git] / drivers / net / sfc / falcon_xmac.c
index 8ccab2c..c84a2ce 100644 (file)
@@ -26,7 +26,7 @@
  *************************************************************************/
 
 /* Configure the XAUI driver that is an output from Falcon */
-static void falcon_setup_xaui(struct efx_nic *efx)
+void falcon_setup_xaui(struct efx_nic *efx)
 {
        efx_oword_t sdctl, txdrv;
 
@@ -85,14 +85,14 @@ int falcon_reset_xaui(struct efx_nic *efx)
        return -ETIMEDOUT;
 }
 
-static void falcon_mask_status_intr(struct efx_nic *efx, bool enable)
+static void falcon_ack_status_intr(struct efx_nic *efx)
 {
        efx_oword_t reg;
 
        if ((efx_nic_rev(efx) != EFX_REV_FALCON_B0) || LOOPBACK_INTERNAL(efx))
                return;
 
-       /* We expect xgmii faults if the wireside link is up */
+       /* We expect xgmii faults if the wireside link is down */
        if (!EFX_WORKAROUND_5147(efx) || !efx->link_state.up)
                return;
 
@@ -101,14 +101,7 @@ static void falcon_mask_status_intr(struct efx_nic *efx, bool enable)
        if (efx->xmac_poll_required)
                return;
 
-       /* Flush the ISR */
-       if (enable)
-               efx_reado(efx, &reg, FR_AB_XM_MGT_INT_MSK);
-
-       EFX_POPULATE_OWORD_2(reg,
-                            FRF_AB_XM_MSK_RMTFLT, !enable,
-                            FRF_AB_XM_MSK_LCLFLT, !enable);
-       efx_writeo(efx, &reg, FR_AB_XM_MGT_INT_MASK);
+       efx_reado(efx, &reg, FR_AB_XM_MGT_INT_MSK);
 }
 
 static bool falcon_xgxs_link_ok(struct efx_nic *efx)
@@ -283,15 +276,13 @@ static bool falcon_xmac_check_fault(struct efx_nic *efx)
 
 static int falcon_reconfigure_xmac(struct efx_nic *efx)
 {
-       falcon_mask_status_intr(efx, false);
-
        falcon_reconfigure_xgxs_core(efx);
        falcon_reconfigure_xmac_core(efx);
 
        falcon_reconfigure_mac_wrapper(efx);
 
        efx->xmac_poll_required = !falcon_xmac_link_ok_retry(efx, 5);
-       falcon_mask_status_intr(efx, true);
+       falcon_ack_status_intr(efx);
 
        return 0;
 }
@@ -362,9 +353,8 @@ void falcon_poll_xmac(struct efx_nic *efx)
            !efx->xmac_poll_required)
                return;
 
-       falcon_mask_status_intr(efx, false);
        efx->xmac_poll_required = !falcon_xmac_link_ok_retry(efx, 1);
-       falcon_mask_status_intr(efx, true);
+       falcon_ack_status_intr(efx);
 }
 
 struct efx_mac_operations falcon_xmac_operations = {