Message ID | 20230128094232.2451947-1-arinc.unal@arinc9.com (mailing list archive) |
---|---|
State | Accepted |
Commit | a1f47752fd6275b2502fb075945022d6cf264855 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: ethernet: mtk_eth_soc: disable hardware DSA untagging for second MAC | expand |
On Sat, 2023-01-28 at 12:42 +0300, arinc9.unal@gmail.com wrote: > From: Arınç ÜNAL <arinc.unal@arinc9.com> > > According to my tests on MT7621AT and MT7623NI SoCs, hardware DSA untagging > won't work on the second MAC. Therefore, disable this feature when the > second MAC of the MT7621 and MT7623 SoCs is being used. > > Fixes: 2d7605a72906 ("net: ethernet: mtk_eth_soc: enable hardware DSA untagging") > Link: https://lore.kernel.org/netdev/6249fc14-b38a-c770-36b4-5af6d41c21d3@arinc9.com/ > Tested-by: Arınç ÜNAL <arinc.unal@arinc9.com> > Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com> > --- > > Final send which should end up on the list. I tested this with Felix's > upcoming patch series. This fix is still needed on top of it. > > https://lore.kernel.org/netdev/20221230073145.53386-1-nbd@nbd.name/ > > The MTK_GMAC1_TRGMII capability is only on the MT7621 and MT7623 SoCs which > I see this problem on. I'm new to coding so I took an educated guess from > the use of MTK_NETSYS_V2 to disable this feature altogether for MT7986 SoC. Keeping this one a little more on pw. It would be great is someone else could validate the above on the relevant H/W. Thanks, Paolo
On 31.01.2023 16:00, Paolo Abeni wrote: > On Sat, 2023-01-28 at 12:42 +0300, arinc9.unal@gmail.com wrote: >> From: Arınç ÜNAL <arinc.unal@arinc9.com> >> >> According to my tests on MT7621AT and MT7623NI SoCs, hardware DSA untagging >> won't work on the second MAC. Therefore, disable this feature when the >> second MAC of the MT7621 and MT7623 SoCs is being used. >> >> Fixes: 2d7605a72906 ("net: ethernet: mtk_eth_soc: enable hardware DSA untagging") >> Link: https://lore.kernel.org/netdev/6249fc14-b38a-c770-36b4-5af6d41c21d3@arinc9.com/ >> Tested-by: Arınç ÜNAL <arinc.unal@arinc9.com> >> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com> >> --- >> >> Final send which should end up on the list. I tested this with Felix's >> upcoming patch series. This fix is still needed on top of it. >> >> https://lore.kernel.org/netdev/20221230073145.53386-1-nbd@nbd.name/ >> >> The MTK_GMAC1_TRGMII capability is only on the MT7621 and MT7623 SoCs which >> I see this problem on. I'm new to coding so I took an educated guess from >> the use of MTK_NETSYS_V2 to disable this feature altogether for MT7986 SoC. > > Keeping this one a little more on pw. It would be great is someone else > could validate the above on the relevant H/W. CC'ing Frank. Frank, could you test this on your Bananapi BPI-R2? Arınç
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Sat, 28 Jan 2023 12:42:32 +0300 you wrote: > From: Arınç ÜNAL <arinc.unal@arinc9.com> > > According to my tests on MT7621AT and MT7623NI SoCs, hardware DSA untagging > won't work on the second MAC. Therefore, disable this feature when the > second MAC of the MT7621 and MT7623 SoCs is being used. > > Fixes: 2d7605a72906 ("net: ethernet: mtk_eth_soc: enable hardware DSA untagging") > Link: https://lore.kernel.org/netdev/6249fc14-b38a-c770-36b4-5af6d41c21d3@arinc9.com/ > Tested-by: Arınç ÜNAL <arinc.unal@arinc9.com> > Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com> > > [...] Here is the summary with links: - [net] net: ethernet: mtk_eth_soc: disable hardware DSA untagging for second MAC https://git.kernel.org/netdev/net/c/a1f47752fd62 You are awesome, thank you!
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index 801deac58bf7..f1cb1efc94cf 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -3243,7 +3243,8 @@ static int mtk_open(struct net_device *dev) struct mtk_eth *eth = mac->hw; int i, err; - if (mtk_uses_dsa(dev) && !eth->prog) { + if ((mtk_uses_dsa(dev) && !eth->prog) && + !(mac->id == 1 && MTK_HAS_CAPS(eth->soc->caps, MTK_GMAC1_TRGMII))) { for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) { struct metadata_dst *md_dst = eth->dsa_meta[i]; @@ -3260,7 +3261,8 @@ static int mtk_open(struct net_device *dev) } } else { /* Hardware special tag parsing needs to be disabled if at least - * one MAC does not use DSA. + * one MAC does not use DSA, or the second MAC of the MT7621 and + * MT7623 SoCs is being used. */ u32 val = mtk_r32(eth, MTK_CDMP_IG_CTRL); val &= ~MTK_CDMP_STAG_EN;