[PATCH v3 3/7] net: dsa: mediatek: add support for passthrough mode

Caleb James DeLisle cjd at cjdns.fr
Thu Oct 29 11:46:30 PDT 2026


On 28/10/2026 13:35, Andrew Lunn wrote:
>>> 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.


I just send v4 with a separate dsa_switch_ops for passthrough. Instead 
of "if (priv->passthrough)" it is numerous empty functions because they 
have to exist and have to do nothing successfully. I'm not such a fan of 
it, but you certainly know drivers/net/dsa better than me and if this is 
the canonical solution then I agree to align with it.


Thanks,

Caleb


>
> 	Andrew



More information about the Linux-mediatek mailing list