[linux-yocto] [PATCH 034/161] drivers/net: The work around for Amarillo needs to be done the first time as well!
Cristian Bercaru
cristian.bercaru at windriver.com
Thu May 21 12:20:16 PDT 2015
From: John Jacques <john.jacques at lsi.com>
The original hardware disabled auto negotiation. This was anticipated by the
driver, but the hardware did not work as expected. The PHY status registers
did not return the correctly values. As a work around, until auto negotiation
could be re-enabled, we forced the MAC into half duplex mode. This mitigates
the problem, but does not solve it. Most of the boards have been fixed at
this point.
Signed-off-by: John Jacques <john.jacques at lsi.com>
---
drivers/net/ethernet/lsi/lsi_acp_net.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/lsi/lsi_acp_net.c b/drivers/net/ethernet/lsi/lsi_acp_net.c
index 56cb258..ae5490d 100644
--- a/drivers/net/ethernet/lsi/lsi_acp_net.c
+++ b/drivers/net/ethernet/lsi/lsi_acp_net.c
@@ -181,6 +181,11 @@ static void appnic_handle_link_change(struct net_device *dev)
status_change = 1;
}
+#ifdef AMARILLO_WA
+ rx_configuration &= ~0x1000;
+ tx_configuration &= ~0x1000;
+#endif
+
if (status_change) {
if (phydev->link) {
netif_carrier_on(dev);
@@ -193,11 +198,6 @@ static void appnic_handle_link_change(struct net_device *dev)
netdev_info(dev, "link down\n");
}
-#ifdef AMARILLO_WA
- rx_configuration &= ~0x1000;
- tx_configuration &= ~0x1000;
-#endif
-
if (rx_configuration != read_mac(APPNIC_RX_CONF))
write_mac(rx_configuration, APPNIC_RX_CONF);
--
1.7.9.5
More information about the linux-yocto
mailing list