]> git.baikalelectronics.ru Git - kernel.git/commit
net: phy: improve genphy_soft_reset
authorHeiner Kallweit <hkallweit1@gmail.com>
Wed, 24 Apr 2019 19:41:06 +0000 (21:41 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Apr 2019 15:56:54 +0000 (11:56 -0400)
commitce4df8c1e98bc68d4b58c5bf54a47f7616872709
treeef795fb4f37c2ac2639bf8b535b74c2b95ee3e7e
parentd97831bcd236f915a1712b8b65ae52b0e911583b
net: phy: improve genphy_soft_reset

PHY's behave differently when being reset. Some reset registers to
defaults, some don't. Some trigger an autoneg restart, some don't.

So let's also set the autoneg restart bit when resetting. Then PHY
behavior should be more consistent. Clearing BMCR_ISOLATE serves the
same purpose and is borrowed from genphy_restart_aneg.

BMCR holds the speed / duplex settings in fixed mode. Therefore
we may have an issue if a soft reset resets BMCR to its default.
So better call genphy_setup_forced() afterwards in fixed mode.
We've seen no related complaint in the last >10 yrs, so let's
treat it as an improvement.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy_device.c