715-19-v6.5-net-phylink-remove-duplicated-linkmode-pause-resolut.patch 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. From 4b624a39f2ab523ca6a6ad9448fab1deb7b101e2 Mon Sep 17 00:00:00 2001
  2. From: "Russell King (Oracle)" <[email protected]>
  3. Date: Tue, 23 May 2023 11:15:53 +0100
  4. Subject: [PATCH 17/21] net: phylink: remove duplicated linkmode pause
  5. resolution
  6. Phylink had two chunks of code virtually the same for resolving the
  7. negotiated pause modes. Factor this down to one function.
  8. Reviewed-by: Andrew Lunn <[email protected]>
  9. Signed-off-by: Russell King (Oracle) <[email protected]>
  10. Signed-off-by: Jakub Kicinski <[email protected]>
  11. ---
  12. drivers/net/phy/phylink.c | 15 ++++-----------
  13. 1 file changed, 4 insertions(+), 11 deletions(-)
  14. --- a/drivers/net/phy/phylink.c
  15. +++ b/drivers/net/phy/phylink.c
  16. @@ -976,11 +976,10 @@ static void phylink_apply_manual_flow(st
  17. state->pause = pl->link_config.pause;
  18. }
  19. -static void phylink_resolve_flow(struct phylink_link_state *state)
  20. +static void phylink_resolve_an_pause(struct phylink_link_state *state)
  21. {
  22. bool tx_pause, rx_pause;
  23. - state->pause = MLO_PAUSE_NONE;
  24. if (state->duplex == DUPLEX_FULL) {
  25. linkmode_resolve_pause(state->advertising,
  26. state->lp_advertising,
  27. @@ -1192,7 +1191,8 @@ static void phylink_get_fixed_state(stru
  28. else if (pl->link_gpio)
  29. state->link = !!gpiod_get_value_cansleep(pl->link_gpio);
  30. - phylink_resolve_flow(state);
  31. + state->pause = MLO_PAUSE_NONE;
  32. + phylink_resolve_an_pause(state);
  33. }
  34. static void phylink_mac_initial_config(struct phylink *pl, bool force_restart)
  35. @@ -3215,7 +3215,6 @@ static const struct sfp_upstream_ops sfp
  36. static void phylink_decode_c37_word(struct phylink_link_state *state,
  37. uint16_t config_reg, int speed)
  38. {
  39. - bool tx_pause, rx_pause;
  40. int fd_bit;
  41. if (speed == SPEED_2500)
  42. @@ -3234,13 +3233,7 @@ static void phylink_decode_c37_word(stru
  43. state->link = false;
  44. }
  45. - linkmode_resolve_pause(state->advertising, state->lp_advertising,
  46. - &tx_pause, &rx_pause);
  47. -
  48. - if (tx_pause)
  49. - state->pause |= MLO_PAUSE_TX;
  50. - if (rx_pause)
  51. - state->pause |= MLO_PAUSE_RX;
  52. + phylink_resolve_an_pause(state);
  53. }
  54. static void phylink_decode_sgmii_word(struct phylink_link_state *state,