net: dsa: felix: restore multicast flood to CPU when NPI tagger reinitializes
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 12 Feb 2021 15:15:57 +0000 (17:15 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 13 Feb 2021 01:08:05 +0000 (17:08 -0800)
ocelot_init sets up PGID_MC to include the CPU port module, and that is
fine, but the ocelot-8021q tagger removes the CPU port module from the
unknown multicast replicator. So after a transition from the default
ocelot tagger towards ocelot-8021q and then again towards ocelot,
multicast flooding towards the CPU port module will be disabled.

Fixes: e21268efbe26 ("net: dsa: felix: perform switch setup for tag_8021q")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/ocelot/felix.c

index 386468e66c417c0ce62eca5e0ddc615861494da4..ae11d3f030acc07dbd9a23367cdbe7f3f95ff07c 100644 (file)
@@ -411,6 +411,7 @@ static int felix_setup_tag_npi(struct dsa_switch *ds, int cpu)
         */
        cpu_flood = ANA_PGID_PGID_PGID(BIT(ocelot->num_phys_ports));
        ocelot_rmw_rix(ocelot, cpu_flood, cpu_flood, ANA_PGID_PGID, PGID_UC);
+       ocelot_rmw_rix(ocelot, cpu_flood, cpu_flood, ANA_PGID_PGID, PGID_MC);
 
        return 0;
 }