aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/davicom/dm9000.c
diff options
context:
space:
mode:
authorNikita Kiryanov <nikita@compulab.co.il>2013-10-16 11:41:34 +0300
committerDavid S. Miller <davem@davemloft.net>2013-10-17 13:35:56 -0400
commit727a282fdb9bc1545542095def45a84d0480f78e (patch)
tree887cdf311906920c378dd66fc0524e2513459ce9 /drivers/net/ethernet/davicom/dm9000.c
parentdm9000: Implement full reset of DM9000 network device (diff)
downloadlinux-dev-727a282fdb9bc1545542095def45a84d0480f78e.tar.xz
linux-dev-727a282fdb9bc1545542095def45a84d0480f78e.zip
dm9000: report the correct LPA
Report the LPA by checking mii_if_info, instead of just saying "no LPA" every time. Cc: David S. Miller <davem@davemloft.net> Cc: Jingoo Han <jg1.han@samsung.com> Cc: Mugunthan V N <mugunthanvnm@ti.com> Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/davicom/dm9000.c')
-rw-r--r--drivers/net/ethernet/davicom/dm9000.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/net/ethernet/davicom/dm9000.c b/drivers/net/ethernet/davicom/dm9000.c
index a179f8150034..a7a941b1a655 100644
--- a/drivers/net/ethernet/davicom/dm9000.c
+++ b/drivers/net/ethernet/davicom/dm9000.c
@@ -753,15 +753,20 @@ static const struct ethtool_ops dm9000_ethtool_ops = {
static void dm9000_show_carrier(board_info_t *db,
unsigned carrier, unsigned nsr)
{
+ int lpa;
struct net_device *ndev = db->ndev;
+ struct mii_if_info *mii = &db->mii;
unsigned ncr = dm9000_read_locked(db, DM9000_NCR);
- if (carrier)
- dev_info(db->dev, "%s: link up, %dMbps, %s-duplex, no LPA\n",
+ if (carrier) {
+ lpa = mii->mdio_read(mii->dev, mii->phy_id, MII_LPA);
+ dev_info(db->dev,
+ "%s: link up, %dMbps, %s-duplex, lpa 0x%04X\n",
ndev->name, (nsr & NSR_SPEED) ? 10 : 100,
- (ncr & NCR_FDX) ? "full" : "half");
- else
+ (ncr & NCR_FDX) ? "full" : "half", lpa);
+ } else {
dev_info(db->dev, "%s: link down\n", ndev->name);
+ }
}
static void