101-18-net-mediatek-fix-direct-MDIO-clause-45-access-via-So.patch 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. From c44f6ac1a31961b0d4faf982ee42167de5ac1672 Mon Sep 17 00:00:00 2001
  2. From: Weijie Gao <[email protected]>
  3. Date: Wed, 19 Jul 2023 17:17:03 +0800
  4. Subject: [PATCH 18/29] net: mediatek: fix direct MDIO clause 45 access via SoC
  5. The original direct MDIO clause 45 access via SoC is missing the
  6. data output. This patch adds it back to ensure MDIO clause 45 can
  7. work properly for external PHYs.
  8. Signed-off-by: Weijie Gao <[email protected]>
  9. ---
  10. drivers/net/mtk_eth.c | 4 ++--
  11. 1 file changed, 2 insertions(+), 2 deletions(-)
  12. --- a/drivers/net/mtk_eth.c
  13. +++ b/drivers/net/mtk_eth.c
  14. @@ -198,7 +198,7 @@ static int mtk_mii_rw(struct mtk_eth_pri
  15. (((u32)phy << MDIO_PHY_ADDR_S) & MDIO_PHY_ADDR_M) |
  16. (((u32)reg << MDIO_REG_ADDR_S) & MDIO_REG_ADDR_M);
  17. - if (cmd == MDIO_CMD_WRITE)
  18. + if (cmd == MDIO_CMD_WRITE || cmd == MDIO_CMD_ADDR)
  19. val |= data & MDIO_RW_DATA_M;
  20. mtk_gmac_write(priv, GMAC_PIAC_REG, val | PHY_ACS_ST);
  21. @@ -210,7 +210,7 @@ static int mtk_mii_rw(struct mtk_eth_pri
  22. return ret;
  23. }
  24. - if (cmd == MDIO_CMD_READ) {
  25. + if (cmd == MDIO_CMD_READ || cmd == MDIO_CMD_READ_C45) {
  26. val = mtk_gmac_read(priv, GMAC_PIAC_REG);
  27. return val & MDIO_RW_DATA_M;
  28. }