Skip to content

Commit

Permalink
DM9000: Use NSR to determine link-status on internal PHY
Browse files Browse the repository at this point in the history
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: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
  • Loading branch information
Ben Dooks authored and Jeff Garzik committed Jun 25, 2008
1 parent f8d79e7 commit aa1eb45
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion drivers/net/dm9000.c
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,14 @@ static int dm9000_nway_reset(struct net_device *dev)
static u32 dm9000_get_link(struct net_device *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)
Expand Down

0 comments on commit aa1eb45

Please sign in to comment.