net: dsa: mv88e6xxx: Fix the max_vid definition for the MV88E6361
authorPeter Rashleigh <peter@rashleigh.ca>
Mon, 14 Oct 2024 20:43:42 +0000 (13:43 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 16 Oct 2024 00:50:51 +0000 (17:50 -0700)
According to the Marvell datasheet the 88E6361 has two VTU pages
(4k VIDs per page) so the max_vid should be 8191, not 4095.

In the current implementation mv88e6xxx_vtu_walk() gives unexpected
results because of this error. I verified that mv88e6xxx_vtu_walk()
works correctly on the MV88E6361 with this patch in place.

Fixes: 12899f299803 ("net: dsa: mv88e6xxx: enable support for 88E6361 switch")
Signed-off-by: Peter Rashleigh <peter@rashleigh.ca>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20241014204342.5852-1-peter@rashleigh.ca
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/mv88e6xxx/chip.c

index 5b4e2ce5470d9bc05603b6f4961957d2798c6653..284270a4ade1c188679d83995126cf99345af0ec 100644 (file)
@@ -6347,7 +6347,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
                .invalid_port_mask = BIT(1) | BIT(2) | BIT(8),
                .num_internal_phys = 5,
                .internal_phys_offset = 3,
-               .max_vid = 4095,
+               .max_vid = 8191,
                .max_sid = 63,
                .port_base_addr = 0x0,
                .phy_base_addr = 0x0,