]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: dsa: bcm_sf2: force pause link settings
authorDoug Berger <opendmb@gmail.com>
Thu, 23 Jun 2022 03:02:04 +0000 (20:02 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Jul 2022 15:36:50 +0000 (17:36 +0200)
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

index 0ee1c0a7b165b4ee6917dc71db9ff680fa894f5a..282e9e2a50d9cdf17680f5c2652504b5d2772048 100644 (file)
@@ -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);
 }