mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-05-29 02:46:16 +02:00
fb2c6e9d4d
Removed because they are upstream: generic/backport-5.15/704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=c5c0760adc260d55265c086b9efb350ea6dda38b generic/pending-5.15/735-net-mediatek-mtk_eth_soc-release-MAC_MCR_FORCE_LINK-.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=448cc8b5f743985f6d1d98aa4efb386fef4c3bf2 generic/pending-5.15/736-net-ethernet-mtk_eth_soc-fix-PPE-hanging-issue.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=9fcadd125044007351905d40c405fadc2d3bb6d6 Add new configuration symbols for tegra target. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
55 lines
2.1 KiB
Diff
55 lines
2.1 KiB
Diff
From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= <arinc.unal@arinc9.com>
|
||
Date: Sun, 5 Feb 2023 20:53:31 +0300
|
||
Subject: [PATCH] net: ethernet: mtk_eth_soc: enable special tag when any MAC
|
||
uses DSA
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
The special tag is only enabled when the first MAC uses DSA. However, it
|
||
must be enabled when any MAC uses DSA. Change the check accordingly.
|
||
|
||
This fixes hardware DSA untagging not working on the second MAC of the
|
||
MT7621 and MT7623 SoCs, and likely other SoCs too. Therefore, remove the
|
||
check that disables hardware DSA untagging for the second MAC of the MT7621
|
||
and MT7623 SoCs.
|
||
|
||
Fixes: a1f47752fd62 ("net: ethernet: mtk_eth_soc: disable hardware DSA untagging for second MAC")
|
||
Co-developed-by: Richard van Schagen <richard@routerhints.com>
|
||
Signed-off-by: Richard van Schagen <richard@routerhints.com>
|
||
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
|
||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||
---
|
||
|
||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||
@@ -3080,7 +3080,7 @@ static void mtk_gdm_config(struct mtk_et
|
||
|
||
val |= config;
|
||
|
||
- if (!i && eth->netdev[0] && netdev_uses_dsa(eth->netdev[0]))
|
||
+ if (eth->netdev[i] && netdev_uses_dsa(eth->netdev[i]))
|
||
val |= MTK_GDMA_SPECIAL_TAG;
|
||
|
||
mtk_w32(eth, val, MTK_GDMA_FWD_CFG(i));
|
||
@@ -3145,8 +3145,7 @@ static int mtk_open(struct net_device *d
|
||
struct mtk_eth *eth = mac->hw;
|
||
int i, err;
|
||
|
||
- if ((mtk_uses_dsa(dev) && !eth->prog) &&
|
||
- !(mac->id == 1 && MTK_HAS_CAPS(eth->soc->caps, MTK_GMAC1_TRGMII))) {
|
||
+ if (mtk_uses_dsa(dev) && !eth->prog) {
|
||
for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) {
|
||
struct metadata_dst *md_dst = eth->dsa_meta[i];
|
||
|
||
@@ -3163,8 +3162,7 @@ static int mtk_open(struct net_device *d
|
||
}
|
||
} else {
|
||
/* Hardware special tag parsing needs to be disabled if at least
|
||
- * one MAC does not use DSA, or the second MAC of the MT7621 and
|
||
- * MT7623 SoCs is being used.
|
||
+ * one MAC does not use DSA.
|
||
*/
|
||
u32 val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
|
||
val &= ~MTK_CDMP_STAG_EN;
|