diff options
| author | Weijie Gao <[email protected]> | 2023-07-19 17:17:03 +0800 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2023-08-03 09:40:50 -0400 |
| commit | c94ad0091714602b8dcff24763f80600a72bc8d1 (patch) | |
| tree | 197d1d05bc44891ae24a1dcffe083f4d2b068321 | |
| parent | c41a058fb2a3405a36d70274d8415957e46fa0d6 (diff) | |
net: mediatek: fix direct MDIO clause 45 access via SoC
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 <[email protected]>
| -rw-r--r-- | drivers/net/mtk_eth.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c index cd72070ff62..61a1c29e361 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; } |
