sfc: Reconfigure the XAUI serdes after an EM reset
authorSteve Hodgson <shodgson@solarflare.com>
Wed, 28 Apr 2010 09:28:10 +0000 (09:28 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Apr 2010 19:44:34 +0000 (12:44 -0700)
Fix a regression introduced in d3245b28ef2a45ec4e115062a38100bd06229289
"sfc: Refactor link configuration".

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sfc/falcon.c
drivers/net/sfc/falcon_xmac.c
drivers/net/sfc/nic.h

index d09ad1b1cd8bb827b671d594fce97cefe5c5e1ef..f7df24dce38a6f23f1210e94550d788da422d995 100644 (file)
@@ -507,6 +507,9 @@ static void falcon_reset_macs(struct efx_nic *efx)
        /* Ensure the correct MAC is selected before statistics
         * are re-enabled by the caller */
        efx_writeo(efx, &mac_ctrl, FR_AB_MAC_CTRL);
+
+       /* This can run even when the GMAC is selected */
+       falcon_setup_xaui(efx);
 }
 
 void falcon_drain_tx_fifo(struct efx_nic *efx)
index 3d65abf85b97708f22f1aa284e822c968941dfd9..c84a2ce2ccbbb905458d110172f2d272f00edf2a 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;
 
index 9351c0331a47f028ff0cbf15211f66873e94117f..7e3bec8561b8a364a97fecd1089ce01fa6e026e4 100644 (file)
@@ -203,6 +203,7 @@ extern void falcon_irq_ack_a1(struct efx_nic *efx);
 extern int efx_nic_flush_queues(struct efx_nic *efx);
 extern void falcon_start_nic_stats(struct efx_nic *efx);
 extern void falcon_stop_nic_stats(struct efx_nic *efx);
+extern void falcon_setup_xaui(struct efx_nic *efx);
 extern int falcon_reset_xaui(struct efx_nic *efx);
 extern void efx_nic_init_common(struct efx_nic *efx);