summary refs log tree commit diff
diff options
context:
space:
mode:
authorDoug Berger <opendmb@gmail.com>2022-06-22 20:02:04 -0700
committerJakub Kicinski <kuba@kernel.org>2022-06-23 20:46:39 -0700
commit7c97bc0128b2eecc703106112679a69d446d1a12 (patch)
treeaf7976b9acc1bd274a7a0d9eab5aead74c4ca157
parent16d584d2fc8f4ea36203af45a76becd7093586f1 (diff)
downloadlinux-7c97bc0128b2eecc703106112679a69d446d1a12.tar.gz
net: dsa: bcm_sf2: force pause link settings
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>
-rw-r--r--drivers/net/dsa/bcm_sf2.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
index 87e81c636339..be0edfa093d0 100644
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -878,6 +878,11 @@ static void bcm_sf2_sw_mac_link_up(struct dsa_switch *ds, int port,
 		if (duplex == DUPLEX_FULL)
 			reg |= DUPLX_MODE;
 
+		if (tx_pause)
+			reg |= TXFLOW_CNTL;
+		if (rx_pause)
+			reg |= RXFLOW_CNTL;
+
 		core_writel(priv, reg, offset);
 	}