diff mbox series

[net] net: ethernet: mtk_eth_soc: disable hardware DSA untagging for second MAC

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

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net
netdev/fixes_present success Fixes tag present in non-next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit fail Errors and warnings before: 441 this patch: 389
netdev/cc_maintainers success CCed 13 of 13 maintainers
netdev/build_clang fail Errors and warnings before: 249 this patch: 516
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn fail Errors and warnings before: 619 this patch: 310
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 18 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Arınç ÜNAL Jan. 28, 2023, 9:42 a.m. UTC
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.

Arınç

---
 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Paolo Abeni Jan. 31, 2023, 1 p.m. UTC | #1
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
Arınç ÜNAL Feb. 1, 2023, 5:57 p.m. UTC | #2
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ç
patchwork-bot+netdevbpf@kernel.org Feb. 2, 2023, 7:40 p.m. UTC | #3
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 mbox series

Patch

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;