Skip to content
Snippets Groups Projects
Commit 8c83c030 authored by Dongpo Li's avatar Dongpo Li Committed by Joe Hershberger
Browse files

net: mii: check phy advertising register when geting link status


When phy autoneg on, the link speed and duplex should be
determined by phy advertising register and
phy link partner ability register.
Check phy advertising register when geting phy link speed and
duplex if autoneg on.

Signed-off-by: default avatarDongpo Li <lidongpo@hisilicon.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: default avatarJoe Hershberger <joe.hershberger@ni.com>
parent 05237f73
No related branches found
No related tags found
No related merge requests found
......@@ -380,7 +380,7 @@ int miiphy_reset(const char *devname, unsigned char addr)
*/
int miiphy_speed(const char *devname, unsigned char addr)
{
u16 bmcr, anlpar;
u16 bmcr, anlpar, adv;
#if defined(CONFIG_PHY_GIGE)
u16 btsr;
......@@ -417,7 +417,12 @@ int miiphy_speed(const char *devname, unsigned char addr)
printf("PHY AN speed");
goto miiphy_read_failed;
}
return (anlpar & LPA_100) ? _100BASET : _10BASET;
if (miiphy_read(devname, addr, MII_ADVERTISE, &adv)) {
puts("PHY AN adv speed");
goto miiphy_read_failed;
}
return ((anlpar & adv) & LPA_100) ? _100BASET : _10BASET;
}
/* Get speed from basic control settings. */
return (bmcr & BMCR_SPEED100) ? _100BASET : _10BASET;
......@@ -433,7 +438,7 @@ miiphy_read_failed:
*/
int miiphy_duplex(const char *devname, unsigned char addr)
{
u16 bmcr, anlpar;
u16 bmcr, anlpar, adv;
#if defined(CONFIG_PHY_GIGE)
u16 btsr;
......@@ -475,7 +480,12 @@ int miiphy_duplex(const char *devname, unsigned char addr)
puts("PHY AN duplex");
goto miiphy_read_failed;
}
return (anlpar & (LPA_10FULL | LPA_100FULL)) ?
if (miiphy_read(devname, addr, MII_ADVERTISE, &adv)) {
puts("PHY AN adv duplex");
goto miiphy_read_failed;
}
return ((anlpar & adv) & (LPA_10FULL | LPA_100FULL)) ?
FULL : HALF;
}
/* Get speed from basic control settings. */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment