]> git.baikalelectronics.ru Git - kernel.git/commit
net: phy: marvell-88x2222: swap 1G/10G modes on autoneg
authorIvan Bornyakov <i.bornyakov@metrotek.ru>
Tue, 13 Apr 2021 20:54:52 +0000 (23:54 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 14 Apr 2021 19:56:44 +0000 (12:56 -0700)
commit1b09768354b83ddea2611faa2cba5398e22e111b
treebe28579efa57ff394abed7b253f319f30dacc940
parentc223c5fa8cd7f013d6e90d0cbeb0d99541af466c
net: phy: marvell-88x2222: swap 1G/10G modes on autoneg

Setting 10G without autonegotiation is invalid according to
phy_ethtool_ksettings_set(). Thus, we need to set it during
autonegotiation.

If 1G autonegotiation can't complete for quite a time, but there is
signal in line, switch line interface type to 10GBase-R, if supported,
in hope for link to be established.

And vice versa. If 10GBase-R link can't be established for quite a time,
and autonegotiation is enabled, and there is signal in line, switch line
interface type to appropriate 1G mode, i.e. 1000Base-X or SGMII, if
supported.

Signed-off-by: Ivan Bornyakov <i.bornyakov@metrotek.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/marvell-88x2222.c