12345678910111213141516171819202122232425262728293031323334 |
- From c44f6ac1a31961b0d4faf982ee42167de5ac1672 Mon Sep 17 00:00:00 2001
- From: Weijie Gao <[email protected]>
- Date: Wed, 19 Jul 2023 17:17:03 +0800
- Subject: [PATCH 18/29] 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]>
- ---
- drivers/net/mtk_eth.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
- --- a/drivers/net/mtk_eth.c
- +++ b/drivers/net/mtk_eth.c
- @@ -198,7 +198,7 @@ static int mtk_mii_rw(struct mtk_eth_pri
- (((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_pri
- 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;
- }
|