Re: [PATCH v3 3/7] net: dsa: mediatek: add support for passthrough mode
From: Andrew Lunn
Date: Wed Oct 28 2026 - 08:39:23 EST
> > What is actually left?
>
>
> In v2 I was using special switch ops, and it looked like this:
Sorry, i did not look at v2.
> /* No manipulation of forwarding rules allowed in passthrough mode */
> static const struct dsa_switch_ops mt7530_passthrough_switch_ops = {
> .get_tag_protocol = mtk_get_tag_protocol,
> .setup = mt753x_setup,
> .teardown = mt753x_teardown,
> .preferred_default_local_cpu_port =
> mt753x_preferred_default_local_cpu_port,
> .get_strings = mt7530_get_strings,
> .get_ethtool_stats = mt7530_get_ethtool_stats,
> .get_sset_count = mt7530_get_sset_count,
> .get_eth_mac_stats = mt7530_get_eth_mac_stats,
> .get_rmon_stats = mt7530_get_rmon_stats,
> .get_eth_ctrl_stats = mt7530_get_eth_ctrl_stats,
> .get_stats64 = mt7530_get_stats64,
> .port_enable = mt7530_port_enable,
> .port_disable = mt7530_port_disable,
> .phylink_get_caps = mt753x_phylink_get_caps,
> .support_eee = dsa_supports_eee,
> .set_mac_eee = mt753x_set_mac_eee,
> .conduit_state_change = mt753x_conduit_state_change,
> };
I think you should be doing something like this. Either two
dsa_switch_ops, or you add generic implementations for all the ops,
which then call device specific implementations dependent on the
compatible. This is how many DSA drivers handle different families of
devices in one driver.
I would avoid putting "if (priv->passthrough)" everywhere.
Andrew