2
0

707-v6.8-06-net-phy-at803x-move-specific-at8031-probe-mode-check.patch 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. From 25d2ba94005fac18fe68878cddff59a67e115554 Mon Sep 17 00:00:00 2001
  2. From: Christian Marangi <[email protected]>
  3. Date: Fri, 8 Dec 2023 15:51:53 +0100
  4. Subject: [PATCH 06/13] net: phy: at803x: move specific at8031 probe mode check
  5. to dedicated probe
  6. Move specific at8031 probe mode check to dedicated probe to make
  7. at803x_probe more generic and keep code tidy.
  8. Signed-off-by: Christian Marangi <[email protected]>
  9. Reviewed-by: Andrew Lunn <[email protected]>
  10. Signed-off-by: David S. Miller <[email protected]>
  11. ---
  12. drivers/net/phy/at803x.c | 39 +++++++++++++++++++--------------------
  13. 1 file changed, 19 insertions(+), 20 deletions(-)
  14. --- a/drivers/net/phy/at803x.c
  15. +++ b/drivers/net/phy/at803x.c
  16. @@ -844,26 +844,6 @@ static int at803x_probe(struct phy_devic
  17. if (ret)
  18. return ret;
  19. - if (phydev->drv->phy_id == ATH8031_PHY_ID) {
  20. - int ccr = phy_read(phydev, AT803X_REG_CHIP_CONFIG);
  21. - int mode_cfg;
  22. -
  23. - if (ccr < 0)
  24. - return ccr;
  25. - mode_cfg = ccr & AT803X_MODE_CFG_MASK;
  26. -
  27. - switch (mode_cfg) {
  28. - case AT803X_MODE_CFG_BX1000_RGMII_50OHM:
  29. - case AT803X_MODE_CFG_BX1000_RGMII_75OHM:
  30. - priv->is_1000basex = true;
  31. - fallthrough;
  32. - case AT803X_MODE_CFG_FX100_RGMII_50OHM:
  33. - case AT803X_MODE_CFG_FX100_RGMII_75OHM:
  34. - priv->is_fiber = true;
  35. - break;
  36. - }
  37. - }
  38. -
  39. return 0;
  40. }
  41. @@ -1584,6 +1564,9 @@ static int at8031_parse_dt(struct phy_de
  42. static int at8031_probe(struct phy_device *phydev)
  43. {
  44. + struct at803x_priv *priv = phydev->priv;
  45. + int mode_cfg;
  46. + int ccr;
  47. int ret;
  48. ret = at803x_probe(phydev);
  49. @@ -1597,6 +1580,22 @@ static int at8031_probe(struct phy_devic
  50. if (ret)
  51. return ret;
  52. + ccr = phy_read(phydev, AT803X_REG_CHIP_CONFIG);
  53. + if (ccr < 0)
  54. + return ccr;
  55. + mode_cfg = ccr & AT803X_MODE_CFG_MASK;
  56. +
  57. + switch (mode_cfg) {
  58. + case AT803X_MODE_CFG_BX1000_RGMII_50OHM:
  59. + case AT803X_MODE_CFG_BX1000_RGMII_75OHM:
  60. + priv->is_1000basex = true;
  61. + fallthrough;
  62. + case AT803X_MODE_CFG_FX100_RGMII_50OHM:
  63. + case AT803X_MODE_CFG_FX100_RGMII_75OHM:
  64. + priv->is_fiber = true;
  65. + break;
  66. + }
  67. +
  68. /* Disable WoL in 1588 register which is enabled
  69. * by default
  70. */