Commit aa1eb452 authored by Ben Dooks's avatar Ben Dooks Committed by Jeff Garzik

DM9000: Use NSR to determine link-status on internal PHY

The DM9000_NSR register contains a copy of the internal PHY's
link status which we can use to determine if the link is up
or down. This eliminates the more costly (and sleeping) PHY
read when using the DM9000's own PHY.
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent f8d79e79
...@@ -473,7 +473,14 @@ static int dm9000_nway_reset(struct net_device *dev) ...@@ -473,7 +473,14 @@ static int dm9000_nway_reset(struct net_device *dev)
static u32 dm9000_get_link(struct net_device *dev) static u32 dm9000_get_link(struct net_device *dev)
{ {
board_info_t *dm = to_dm9000_board(dev); board_info_t *dm = to_dm9000_board(dev);
return mii_link_ok(&dm->mii); u32 ret;
if (dm->flags & DM9000_PLATF_EXT_PHY)
ret = mii_link_ok(&dm->mii);
else
ret = dm9000_read_locked(dm, DM9000_NSR) & NSR_LINKST ? 1 : 0;
return ret;
} }
#define DM_EEPROM_MAGIC (0x444D394B) #define DM_EEPROM_MAGIC (0x444D394B)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment