| From 7c97bc0128b2eecc703106112679a69d446d1a12 Mon Sep 17 00:00:00 2001 |
| From: Doug Berger <opendmb@gmail.com> |
| Date: Wed, 22 Jun 2022 20:02:04 -0700 |
| Subject: net: dsa: bcm_sf2: force pause link settings |
| |
| From: Doug Berger <opendmb@gmail.com> |
| |
| commit 7c97bc0128b2eecc703106112679a69d446d1a12 upstream. |
| |
| The pause settings reported by the PHY should also be applied to the GMII port |
| status override otherwise the switch will not generate pause frames towards the |
| link partner despite the advertisement saying otherwise. |
| |
| Fixes: 246d7f773c13 ("net: dsa: add Broadcom SF2 switch driver") |
| Signed-off-by: Doug Berger <opendmb@gmail.com> |
| Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> |
| Link: https://lore.kernel.org/r/20220623030204.1966851-1-f.fainelli@gmail.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/dsa/bcm_sf2.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/drivers/net/dsa/bcm_sf2.c |
| +++ b/drivers/net/dsa/bcm_sf2.c |
| @@ -602,6 +602,11 @@ force_link: |
| reg |= LINK_STS; |
| if (state->duplex == DUPLEX_FULL) |
| reg |= DUPLX_MODE; |
| + if (state->pause & MLO_PAUSE_TXRX_MASK) { |
| + if (state->pause & MLO_PAUSE_TX) |
| + reg |= TXFLOW_CNTL; |
| + reg |= RXFLOW_CNTL; |
| + } |
| |
| core_writel(priv, reg, offset); |
| } |