aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c
diff options
context:
space:
mode:
authorCasper Andersson <casper.casan@gmail.com>2022-03-24 12:38:53 +0100
committerJakub Kicinski <kuba@kernel.org>2022-03-25 15:45:14 -0700
commitad238fc6de7d1adece5167df09464912c098b021 (patch)
treebbf753e5cd432b3eab6d530f9a4464130f9bd658 /drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c
parentnet: sparx5: Remove unused GLAG handling in PGID (diff)
downloadlinux-dev-ad238fc6de7d1adece5167df09464912c098b021.tar.xz
linux-dev-ad238fc6de7d1adece5167df09464912c098b021.zip
net: sparx5: Refactor mdb handling according to feedback
- Remove mact_lookup and use new mact_find instead. - Make pgid_read_mask function. - Set PGID arbiter to start searching at PGID_BASE + 8. This is according to feedback on previous patch. https://lore.kernel.org/netdev/20220322081823.wqbx7vud4q7qtjuq@wse-c0155/T/#t Signed-off-by: Casper Andersson <casper.casan@gmail.com> Reviewed-by: Steen Hegelund <Steen.Hegelund@microchip.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c')
-rw-r--r--drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c b/drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c
index 8e56ffa1c4f7..37e4ac965849 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c
@@ -138,6 +138,13 @@ void sparx5_pgid_update_mask(struct sparx5_port *port, int pgid, bool enable)
}
}
+void sparx5_pgid_read_mask(struct sparx5 *spx5, int pgid, u32 portmask[3])
+{
+ portmask[0] = spx5_rd(spx5, ANA_AC_PGID_CFG(pgid));
+ portmask[1] = spx5_rd(spx5, ANA_AC_PGID_CFG1(pgid));
+ portmask[2] = spx5_rd(spx5, ANA_AC_PGID_CFG2(pgid));
+}
+
void sparx5_update_fwd(struct sparx5 *sparx5)
{
DECLARE_BITMAP(workmask, SPX5_PORTS);