704-04-v5.17-net-mtk_eth_soc-use-phylink_generic_validate.patch 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. From a4238f6ce151afa331375d74a5033b76da637644 Mon Sep 17 00:00:00 2001
  2. From: "Russell King (Oracle)" <[email protected]>
  3. Date: Tue, 16 Nov 2021 10:06:58 +0000
  4. Subject: [PATCH] net: mtk_eth_soc: use phylink_generic_validate()
  5. mtk_eth_soc has no special behaviour in its validation implementation,
  6. so can be switched to phylink_generic_validate().
  7. Signed-off-by: Russell King (Oracle) <[email protected]>
  8. Signed-off-by: David S. Miller <[email protected]>
  9. ---
  10. drivers/net/ethernet/mediatek/mtk_eth_soc.c | 53 ++-------------------
  11. 1 file changed, 4 insertions(+), 49 deletions(-)
  12. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  13. +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  14. @@ -573,56 +573,8 @@ static void mtk_mac_link_up(struct phyli
  15. mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id));
  16. }
  17. -static void mtk_validate(struct phylink_config *config,
  18. - unsigned long *supported,
  19. - struct phylink_link_state *state)
  20. -{
  21. - __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
  22. -
  23. - phylink_set_port_modes(mask);
  24. - phylink_set(mask, Autoneg);
  25. -
  26. - switch (state->interface) {
  27. - case PHY_INTERFACE_MODE_TRGMII:
  28. - phylink_set(mask, 1000baseT_Full);
  29. - break;
  30. - case PHY_INTERFACE_MODE_1000BASEX:
  31. - phylink_set(mask, 1000baseX_Full);
  32. - break;
  33. - case PHY_INTERFACE_MODE_2500BASEX:
  34. - phylink_set(mask, 2500baseX_Full);
  35. - break;
  36. - case PHY_INTERFACE_MODE_GMII:
  37. - case PHY_INTERFACE_MODE_RGMII:
  38. - case PHY_INTERFACE_MODE_RGMII_ID:
  39. - case PHY_INTERFACE_MODE_RGMII_RXID:
  40. - case PHY_INTERFACE_MODE_RGMII_TXID:
  41. - phylink_set(mask, 1000baseT_Half);
  42. - fallthrough;
  43. - case PHY_INTERFACE_MODE_SGMII:
  44. - phylink_set(mask, 1000baseT_Full);
  45. - phylink_set(mask, 1000baseX_Full);
  46. - fallthrough;
  47. - case PHY_INTERFACE_MODE_MII:
  48. - case PHY_INTERFACE_MODE_RMII:
  49. - case PHY_INTERFACE_MODE_REVMII:
  50. - default:
  51. - phylink_set(mask, 10baseT_Half);
  52. - phylink_set(mask, 10baseT_Full);
  53. - phylink_set(mask, 100baseT_Half);
  54. - phylink_set(mask, 100baseT_Full);
  55. - break;
  56. - }
  57. -
  58. - phylink_set(mask, Pause);
  59. - phylink_set(mask, Asym_Pause);
  60. -
  61. - linkmode_and(supported, supported, mask);
  62. - linkmode_and(state->advertising, state->advertising, mask);
  63. -}
  64. -
  65. static const struct phylink_mac_ops mtk_phylink_ops = {
  66. - .validate = mtk_validate,
  67. + .validate = phylink_generic_validate,
  68. .mac_pcs_get_state = mtk_mac_pcs_get_state,
  69. .mac_an_restart = mtk_mac_an_restart,
  70. .mac_config = mtk_mac_config,
  71. @@ -3323,6 +3275,9 @@ static int mtk_add_mac(struct mtk_eth *e
  72. mac->phylink_config.dev = &eth->netdev[id]->dev;
  73. mac->phylink_config.type = PHYLINK_NETDEV;
  74. + mac->phylink_config.mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
  75. + MAC_10 | MAC_100 | MAC_1000 | MAC_2500FD;
  76. +
  77. __set_bit(PHY_INTERFACE_MODE_MII,
  78. mac->phylink_config.supported_interfaces);
  79. __set_bit(PHY_INTERFACE_MODE_GMII,