Skip to content

Commit 2c67301

Browse files
Marek Vasutkuba-moo
authored andcommitted
net: phy: realtek: Avoid PHYCR2 access if PHYCR2 not present
The driver is currently checking for PHYCR2 register presence in rtl8211f_config_init(), but it does so after accessing PHYCR2 to disable EEE. This was introduced in commit bfc17c1 ("net: phy: realtek: disable PHY-mode EEE"). Move the PHYCR2 presence test before the EEE disablement and simplify the code. Fixes: bfc17c1 ("net: phy: realtek: disable PHY-mode EEE") Signed-off-by: Marek Vasut <marek.vasut@mailbox.org> Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com> Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/20251011110309.12664-1-marek.vasut@mailbox.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent d1d5df4 commit 2c67301

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

drivers/net/phy/realtek/realtek_main.c

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -633,26 +633,25 @@ static int rtl8211f_config_init(struct phy_device *phydev)
633633
str_enabled_disabled(val_rxdly));
634634
}
635635

636+
if (!priv->has_phycr2)
637+
return 0;
638+
636639
/* Disable PHY-mode EEE so LPI is passed to the MAC */
637640
ret = phy_modify_paged(phydev, RTL8211F_PHYCR_PAGE, RTL8211F_PHYCR2,
638641
RTL8211F_PHYCR2_PHY_EEE_ENABLE, 0);
639642
if (ret)
640643
return ret;
641644

642-
if (priv->has_phycr2) {
643-
ret = phy_modify_paged(phydev, RTL8211F_PHYCR_PAGE,
644-
RTL8211F_PHYCR2, RTL8211F_CLKOUT_EN,
645-
priv->phycr2);
646-
if (ret < 0) {
647-
dev_err(dev, "clkout configuration failed: %pe\n",
648-
ERR_PTR(ret));
649-
return ret;
650-
}
651-
652-
return genphy_soft_reset(phydev);
645+
ret = phy_modify_paged(phydev, RTL8211F_PHYCR_PAGE,
646+
RTL8211F_PHYCR2, RTL8211F_CLKOUT_EN,
647+
priv->phycr2);
648+
if (ret < 0) {
649+
dev_err(dev, "clkout configuration failed: %pe\n",
650+
ERR_PTR(ret));
651+
return ret;
653652
}
654653

655-
return 0;
654+
return genphy_soft_reset(phydev);
656655
}
657656

658657
static int rtl821x_suspend(struct phy_device *phydev)

0 commit comments

Comments
 (0)