Backport accepted BCM5325 patches from net-next. These patches will be merged in the v6.17 kernel window. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
57 lines
2.2 KiB
Diff
57 lines
2.2 KiB
Diff
From 044d5ce2788b165798bfd173548e61bf7b6baf4d Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
|
Date: Sat, 14 Jun 2025 09:59:54 +0200
|
|
Subject: [PATCH] net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
BCM5325 doesn't implement B53_UC_FWD_EN, B53_MC_FWD_EN or B53_IPMC_FWD_EN.
|
|
|
|
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
|
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|
Link: https://patch.msgid.link/20250614080000.1884236-9-noltari@gmail.com
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/dsa/b53/b53_common.c | 18 +++++++++++-------
|
|
drivers/net/dsa/b53/b53_regs.h | 1 +
|
|
2 files changed, 12 insertions(+), 7 deletions(-)
|
|
|
|
--- a/drivers/net/dsa/b53/b53_common.c
|
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
|
@@ -366,14 +366,18 @@ static void b53_set_forwarding(struct b5
|
|
b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt);
|
|
mgmt |= B53_MII_DUMB_FWDG_EN;
|
|
b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt);
|
|
- }
|
|
|
|
- /* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether
|
|
- * frames should be flooded or not.
|
|
- */
|
|
- b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt);
|
|
- mgmt |= B53_UC_FWD_EN | B53_MC_FWD_EN | B53_IPMC_FWD_EN;
|
|
- b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt);
|
|
+ /* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether
|
|
+ * frames should be flooded or not.
|
|
+ */
|
|
+ b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt);
|
|
+ mgmt |= B53_UC_FWD_EN | B53_MC_FWD_EN | B53_IPMC_FWD_EN;
|
|
+ b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt);
|
|
+ } else {
|
|
+ b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt);
|
|
+ mgmt |= B53_IP_MCAST_25;
|
|
+ b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt);
|
|
+ }
|
|
}
|
|
|
|
static void b53_enable_vlan(struct b53_device *dev, int port, bool enable,
|
|
--- a/drivers/net/dsa/b53/b53_regs.h
|
|
+++ b/drivers/net/dsa/b53/b53_regs.h
|
|
@@ -106,6 +106,7 @@
|
|
|
|
/* IP Multicast control (8 bit) */
|
|
#define B53_IP_MULTICAST_CTRL 0x21
|
|
+#define B53_IP_MCAST_25 BIT(0)
|
|
#define B53_IPMC_FWD_EN BIT(1)
|
|
#define B53_UC_FWD_EN BIT(6)
|
|
#define B53_MC_FWD_EN BIT(7)
|