]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
net: mediatek: fix direct MDIO clause 45 access via SoC
authorWeijie Gao <weijie.gao@mediatek.com>
Wed, 19 Jul 2023 09:17:03 +0000 (17:17 +0800)
committerTom Rini <trini@konsulko.com>
Thu, 3 Aug 2023 13:40:50 +0000 (09:40 -0400)
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

index cd72070ff625c05426712b9bd8d07f6297a4e84f..61a1c29e361885706ddb7679acb7f38672dc1931 100644 (file)
@@ -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;
        }