Thread (9 messages) 9 messages, 2 authors, 9d ago

Re: [PATCH net-next 1/2] net: dsa: mv88e6xxx: write the ATU FID register on 88E6141/88E6341

From: Luke Howard <hidden>
Date: 2026-07-03 21:29:02
Also in: lkml

On 4 Jul 2026, at 1:31 am, Andrew Lunn [off-list ref] wrote:

On Fri, Jul 03, 2026 at 04:42:55PM +1000, Luke Howard wrote:
quoted
The existing code assumed the 88E6141/88E6341 did not have a dedicated
ATU FID register because of its database count (256), instead taking
the legacy path which resulted in the FID register never being set.

This resulted in every FDB entry being loaded into FID 0, breaking
VLAN aware bridging.

Fixes: a75961d0ebfd ("net: dsa: mv88e6xxx: Add support for ethernet switch 88E6341")
Please submit fixes to the net tree.

https://www.kernel.org/doc/html/latest/process/maintainer-netdev.html
Will do.
quoted
@@ -131,6 +131,7 @@ struct mv88e6xxx_info {
u16 prod_num;
const char *name;
unsigned int num_databases;
+ bool atu_fid_reg;
unsigned int num_macs;
unsigned int num_ports;
unsigned int num_internal_phys;
Please think about padding. The current structure layout is not great,
invalid_port_mask should be somewhere else, but please don't make it
worse. Also, this structure has some reasonable comments. You have the
chance to comment that the number of FIBs does not imply if there is a
dedicated register, there are examples with 255 and a dedicated
register.
Noted.
quoted
diff --git a/drivers/net/dsa/mv88e6xxx/global1_atu.c b/drivers/net/dsa/mv88e6xxx/global1_atu.c
index c47f068f56b32..aa5adc78607ca 100644
--- a/drivers/net/dsa/mv88e6xxx/global1_atu.c
+++ b/drivers/net/dsa/mv88e6xxx/global1_atu.c
@@ -135,7 +135,7 @@ static int mv88e6xxx_g1_atu_op(struct mv88e6xxx_chip *chip, u16 fid, u16 op)
int err;

/* FID bits are dispatched all around gradually as more are supported */
- if (mv88e6xxx_num_databases(chip) > 256) {
+ if (mv88e6xxx_num_databases(chip) > 256 || chip->info->atu_fid_reg) {
So currently, > 256 implies a dedicated register.  But do we need both
quoted
255 and chip->info->atu_fid_reg? I would probably set atu_fid_reg
true for all devices which have a dedicated register.
Noted.

Luke
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help