> On MT7531 and MT7988 switches, trapped frames forwarding is directed to > CPU ports specified in the MT7531_CFC (0x04) CPU_PMAP bitmap. When support > for EN7581 was introduced, it was assumed to follow the MT7531 model. > > However, on Airoha EN7581 and AN7583 switch IP, setting MT7531_CFC alone > is not sufficient for trapped control frames (such as STP BPDUs) to exit > towards the CPU port. The switch forwarding hardware also requires the > MT7530_CPU_EN bit and MT7530_CPU_PORT field to be enabled in MT753X_MFC > (0x10). Without this, trapped frames are dropped by the switch forwarding > logic and never reach the CPU conduit. > > Include ID_EN7581 and ID_AN7583 in mt753x_conduit_state_change() to set > MT7530_CPU_EN and MT7530_CPU_PORT in MT753X_MFC when the conduit becomes > operational, matching the handling for MT7530, MT7621, and EN7528. > > Fixes: 2b0229f67932 ("net: dsa: mt7530: Add EN7581 support") > Signed-off-by: Tao Acked-by: Lorenzo Bianconi > --- > drivers/net/dsa/mt7530.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c > index 863f2079833f..9693a55f553e 100644 > --- a/drivers/net/dsa/mt7530.c > +++ b/drivers/net/dsa/mt7530.c > @@ -3309,7 +3309,8 @@ mt753x_conduit_state_change(struct dsa_switch *ds, > * interface is up. > */ > if (priv->id != ID_MT7530 && priv->id != ID_MT7621 && > - priv->id != ID_EN7528) > + priv->id != ID_EN7528 && > + priv->id != ID_EN7581 && priv->id != ID_AN7583) > return; > > mask = BIT(cpu_dp->index); > -- > 2.55.0 > >