Le Thu, 9 Feb 2023 11:38:04 +0100, Simon Horman <simon.horman@xxxxxxxxxxxx> a écrit : > On Wed, Feb 08, 2023 at 05:04:53PM +0100, Clément Léger wrote: > > Add support for vlan operation (add, del, filtering) on the RZN1 > > driver. The a5psw switch supports up to 32 VLAN IDs with filtering, > > tagged/untagged VLANs and PVID for each ports. > > > > Signed-off-by: Clément Léger <clement.leger@xxxxxxxxxxx> > > --- > > drivers/net/dsa/rzn1_a5psw.c | 167 +++++++++++++++++++++++++++++++++++ > > drivers/net/dsa/rzn1_a5psw.h | 8 +- > > 2 files changed, 172 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/net/dsa/rzn1_a5psw.c b/drivers/net/dsa/rzn1_a5psw.c > > index 0ce3948952db..de6b18ec647d 100644 > > --- a/drivers/net/dsa/rzn1_a5psw.c > > +++ b/drivers/net/dsa/rzn1_a5psw.c > > @@ -583,6 +583,147 @@ static int a5psw_port_fdb_dump(struct dsa_switch *ds, int port, > > return ret; > > } > > > > +static int a5psw_port_vlan_filtering(struct dsa_switch *ds, int port, > > + bool vlan_filtering, > > + struct netlink_ext_ack *extack) > > +{ > > + u32 mask = BIT(port + A5PSW_VLAN_VERI_SHIFT) | > > + BIT(port + A5PSW_VLAN_DISC_SHIFT); > > + struct a5psw *a5psw = ds->priv; > > + u32 val = 0; > > + > > + if (vlan_filtering) > > + val = BIT(port + A5PSW_VLAN_VERI_SHIFT) | > > + BIT(port + A5PSW_VLAN_DISC_SHIFT); > > nit: could this be expressed as follows? > > val = vlan_filtering ? mask : 0 ? Yes clearly looks more concise. Thanks, > > > + > > + a5psw_reg_rmw(a5psw, A5PSW_VLAN_VERIFY, mask, val); > > + > > + return 0; > > +} > > ... -- Clément Léger, Embedded Linux and Kernel engineer at Bootlin https://bootlin.com