diff mbox series

[18/29] net: mediatek: fix direct MDIO clause 45 access via SoC

Message ID a3ce1965ec23f42ccfe78c46adb37b55db3ac7a2.1689756363.git.weijie.gao@mediatek.com
State Accepted
Commit c94ad0091714602b8dcff24763f80600a72bc8d1
Delegated to: Tom Rini
Headers show
Series Add support for MediaTek MT7988 SoC | expand

Commit Message

Weijie Gao (高惟杰) July 19, 2023, 9:17 a.m. UTC
The original direct MDIO clause 45 access via SoC is missing the
data output. This patch adds it back to ensure MDIO clause 45 can
work properly for external PHYs.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
---
 drivers/net/mtk_eth.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c
index cd72070ff6..61a1c29e36 100644
--- a/drivers/net/mtk_eth.c
+++ b/drivers/net/mtk_eth.c
@@ -198,7 +198,7 @@  static int mtk_mii_rw(struct mtk_eth_priv *priv, u8 phy, u8 reg, u16 data,
 	      (((u32)phy << MDIO_PHY_ADDR_S) & MDIO_PHY_ADDR_M) |
 	      (((u32)reg << MDIO_REG_ADDR_S) & MDIO_REG_ADDR_M);
 
-	if (cmd == MDIO_CMD_WRITE)
+	if (cmd == MDIO_CMD_WRITE || cmd == MDIO_CMD_ADDR)
 		val |= data & MDIO_RW_DATA_M;
 
 	mtk_gmac_write(priv, GMAC_PIAC_REG, val | PHY_ACS_ST);
@@ -210,7 +210,7 @@  static int mtk_mii_rw(struct mtk_eth_priv *priv, u8 phy, u8 reg, u16 data,
 		return ret;
 	}
 
-	if (cmd == MDIO_CMD_READ) {
+	if (cmd == MDIO_CMD_READ || cmd == MDIO_CMD_READ_C45) {
 		val = mtk_gmac_read(priv, GMAC_PIAC_REG);
 		return val & MDIO_RW_DATA_M;
 	}