Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bcef6373 authored by Álvaro Fernández Rojas's avatar Álvaro Fernández Rojas Committed by Greg Kroah-Hartman
Browse files

net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325



[ Upstream commit 044d5ce2788b165798bfd173548e61bf7b6baf4d ]

BCM5325 doesn't implement B53_UC_FWD_EN, B53_MC_FWD_EN or B53_IPMC_FWD_EN.

Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
Signed-off-by: default avatarÁlvaro Fernández Rojas <noltari@gmail.com>
Link: https://patch.msgid.link/20250614080000.1884236-9-noltari@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent ce72da68
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -342,7 +342,6 @@ static void b53_set_forwarding(struct b53_device *dev, int enable)
		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.
@@ -350,6 +349,11 @@ static void b53_set_forwarding(struct b53_device *dev, int enable)
		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, bool enable,
+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,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)