]> 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)
commitd7029f55cc46066d833cbf7f532b1ae8d6835859
treebe28579efa57ff394abed7b253f319f30dacc940
parent473960a7b4434dbda6f628eb9e29e989f730343f
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