summary refs log tree commit diff
path: root/drivers/net/dsa/bcm_sf2.c
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 /drivers/net/dsa/bcm_sf2.c
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>
Diffstat (limited to 'drivers/net/dsa/bcm_sf2.c')
-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);
 	}