Commit fa152f62 authored by Oleksij Rempel's avatar Oleksij Rempel Committed by Jakub Kicinski

net: phy: ax88772a: fix lost pause advertisement configuration

In case of asix_ax88772a_link_change_notify() workaround, we run soft
reset which will automatically clear MII_ADVERTISE configuration. The
PHYlib framework do not know about changed configuration state of the
PHY, so we need use phy_init_hw() to reinit PHY configuration.

Fixes: dde25846 ("net: usb/phy: asix: add support for ax88772A/C PHYs")
Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20220628114349.3929928-1-o.rempel@pengutronix.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 1758bde2
...@@ -88,8 +88,10 @@ static void asix_ax88772a_link_change_notify(struct phy_device *phydev) ...@@ -88,8 +88,10 @@ static void asix_ax88772a_link_change_notify(struct phy_device *phydev)
/* Reset PHY, otherwise MII_LPA will provide outdated information. /* Reset PHY, otherwise MII_LPA will provide outdated information.
* This issue is reproducible only with some link partner PHYs * This issue is reproducible only with some link partner PHYs
*/ */
if (phydev->state == PHY_NOLINK && phydev->drv->soft_reset) if (phydev->state == PHY_NOLINK) {
phydev->drv->soft_reset(phydev); phy_init_hw(phydev);
phy_start_aneg(phydev);
}
} }
static struct phy_driver asix_driver[] = { static struct phy_driver asix_driver[] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment