diff options
author | Yann Cézard | 2011-03-20 13:29:05 +0100 |
---|---|---|
committer | Michael Brown | 2011-03-20 13:36:09 +0100 |
commit | 9215b7f4c0e24cceeac42d8ced5b4af824c4b011 (patch) | |
tree | aa17817b2dcf6c48999b9668e9878ba6ea2075f2 /src/drivers/net/forcedeth.c | |
parent | [console] Try to avoid problems caused by keycode 86 (diff) | |
download | ipxe-9215b7f4c0e24cceeac42d8ced5b4af824c4b011.tar.gz ipxe-9215b7f4c0e24cceeac42d8ced5b4af824c4b011.tar.xz ipxe-9215b7f4c0e24cceeac42d8ced5b4af824c4b011.zip |
[forcedeth] Clear the MII link status register on link status changes
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/forcedeth.c')
-rw-r--r-- | src/drivers/net/forcedeth.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/drivers/net/forcedeth.c b/src/drivers/net/forcedeth.c index 6876b005..918f502f 100644 --- a/src/drivers/net/forcedeth.c +++ b/src/drivers/net/forcedeth.c @@ -967,6 +967,12 @@ static void forcedeth_link_status ( struct net_device *netdev ) { struct forcedeth_private *priv = netdev_priv ( netdev ); + void *ioaddr = priv->mmio_addr; + u32 mii_status; + + /* Clear the MII link change status */ + mii_status = readl ( ioaddr + NvRegMIIStatus ); + writel ( NVREG_MIISTAT_LINKCHANGE, ioaddr + NvRegMIIStatus ); if ( nv_update_linkspeed ( priv ) == 1 ) netdev_link_up ( netdev ); |