diff options
author | Andrew Lunn <andrew@lunn.ch> | 2015-08-31 15:56:54 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-08-31 14:48:03 -0700 |
commit | bc0f4a87fc7e45642455682f281de2131cde9695 (patch) | |
tree | e755ec8c049139469d67a5f239002ec68c743113 /net/ipv6/ndisc.c | |
parent | a5597008dbc230876db2d344561d634f4d52ea4a (diff) | |
download | op-kernel-dev-bc0f4a87fc7e45642455682f281de2131cde9695.zip op-kernel-dev-bc0f4a87fc7e45642455682f281de2131cde9695.tar.gz |
net: phy: fixed_phy: Set phy capabilities even when link down.
What features a phy supports is masked in genphy_config_init() by
looking at the PHYs BMSR register.
If the link is down, fixed_phy_update_regs() will only set the auto-
negotiation capable bit in BMSR. Thus genphy_config_init() comes to
the conclusion the PHY can only perform 10/Half, and masks out the
higher speed features. If however the link it up, BMSR is set to
indicate the speed the PHY is capable of auto-negotiating, and
genphy_config_init() does not mask out the high speed features.
To fix this, when the link is down, have fixed_phy_update_regs() leave
the link status, auto-negotiation complete, and link partner
capabilities unset, but set all the local capabilities depending on
the fixed phy speed.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/ndisc.c')
0 files changed, 0 insertions, 0 deletions