Message ID | 6a72148a-5ad3-6835-cfbf-974d871498e3@gmail.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net] r8169: fix page read in r8168g_mdio_read | expand |
From: Heiner Kallweit <hkallweit1@gmail.com> Date: Wed, 6 Nov 2019 21:51:31 +0100 > Functions like phy_modify_paged() read the current page, on Realtek > PHY's this means reading the value of register 0x1f. Add special > handling for reading this register, similar to what we do already > in r8168g_mdio_write(). Currently we read a random value that by > chance seems to be 0 always. > > Fixes: a2928d28643e ("r8169: use paged versions of phylib MDIO access functions") > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Applied, thanks.
From: David Miller <davem@davemloft.net> Date: Wed, 06 Nov 2019 21:37:58 -0800 (PST) > From: Heiner Kallweit <hkallweit1@gmail.com> > Date: Wed, 6 Nov 2019 21:51:31 +0100 > >> Functions like phy_modify_paged() read the current page, on Realtek >> PHY's this means reading the value of register 0x1f. Add special >> handling for reading this register, similar to what we do already >> in r8168g_mdio_write(). Currently we read a random value that by >> chance seems to be 0 always. >> >> Fixes: a2928d28643e ("r8169: use paged versions of phylib MDIO access functions") >> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> > > Applied, thanks. And also queued up for -stable :-)
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 0704f8bd1..8a7b22301 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -910,6 +910,9 @@ static void r8168g_mdio_write(struct rtl8169_private *tp, int reg, int value) static int r8168g_mdio_read(struct rtl8169_private *tp, int reg) { + if (reg == 0x1f) + return tp->ocp_base == OCP_STD_PHY_BASE ? 0 : tp->ocp_base >> 4; + if (tp->ocp_base != OCP_STD_PHY_BASE) reg -= 0x10;
Functions like phy_modify_paged() read the current page, on Realtek PHY's this means reading the value of register 0x1f. Add special handling for reading this register, similar to what we do already in r8168g_mdio_write(). Currently we read a random value that by chance seems to be 0 always. Fixes: a2928d28643e ("r8169: use paged versions of phylib MDIO access functions") Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- drivers/net/ethernet/realtek/r8169_main.c | 3 +++ 1 file changed, 3 insertions(+)