diff options
author | Felix Fietkau <nbd@nbd.name> | 2022-11-25 01:56:29 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2022-11-25 01:56:53 +0100 |
commit | 3dff6b53db1c568b957e7bde15eb5e049ea978ce (patch) | |
tree | bcf652598f6bc95e37775dd87b756b9fba3aae7f /target/linux | |
parent | c1d1202e67dc929e58c4d6d1f2698363cbf1b6f7 (diff) | |
download | upstream-3dff6b53db1c568b957e7bde15eb5e049ea978ce.tar.gz upstream-3dff6b53db1c568b957e7bde15eb5e049ea978ce.tar.bz2 upstream-3dff6b53db1c568b957e7bde15eb5e049ea978ce.zip |
kernel: fix mtk_eth_soc issue when using secondary GMAC on MT7621/MT7622
The CDMQ ingress special tag flag needs to be set for 7986 even without DSA
untag offload, otherwise tx checksum offload seems to break
Fixes: 9b482ee22f3f ("kernel: add more fixes for mtk_eth_soc")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux')
2 files changed, 5 insertions, 9 deletions
diff --git a/target/linux/generic/pending-5.15/732-14-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch b/target/linux/generic/pending-5.15/732-14-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch index 1a32c02f1d..42f98e6aff 100644 --- a/target/linux/generic/pending-5.15/732-14-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch +++ b/target/linux/generic/pending-5.15/732-14-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch @@ -111,7 +111,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0); if (err) { netdev_err(dev, "%s: could not attach PHY: %d\n", __func__, -@@ -3215,6 +3160,39 @@ static int mtk_open(struct net_device *d +@@ -3215,6 +3160,35 @@ static int mtk_open(struct net_device *d phylink_start(mac->phylink); netif_tx_start_all_queues(dev); @@ -141,17 +141,13 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> + val &= ~MTK_CDMP_STAG_EN; + mtk_w32(eth, val, MTK_CDMP_IG_CTRL); + -+ val = mtk_r32(eth, MTK_CDMQ_IG_CTRL); -+ val &= ~MTK_CDMQ_STAG_EN; -+ mtk_w32(eth, val, MTK_CDMQ_IG_CTRL); -+ + mtk_w32(eth, 0, MTK_CDMP_EG_CTRL); + } + return 0; } -@@ -3508,10 +3486,9 @@ static int mtk_hw_init(struct mtk_eth *e +@@ -3508,10 +3482,9 @@ static int mtk_hw_init(struct mtk_eth *e if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { val = mtk_r32(eth, MTK_CDMP_IG_CTRL); mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL); @@ -164,7 +160,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* set interrupt delays based on current Net DIM sample */ mtk_dim_rx(ð->rx_dim.work); -@@ -4132,7 +4109,7 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4132,7 +4105,7 @@ static int mtk_add_mac(struct mtk_eth *e eth->netdev[id]->hw_features |= NETIF_F_LRO; eth->netdev[id]->vlan_features = eth->soc->hw_features & diff --git a/target/linux/ramips/patches-5.15/700-net-ethernet-mediatek-support-net-labels.patch b/target/linux/ramips/patches-5.15/700-net-ethernet-mediatek-support-net-labels.patch index c447793eae..8e666ec53d 100644 --- a/target/linux/ramips/patches-5.15/700-net-ethernet-mediatek-support-net-labels.patch +++ b/target/linux/ramips/patches-5.15/700-net-ethernet-mediatek-support-net-labels.patch @@ -14,7 +14,7 @@ Signed-off-by: RenĂ© van Dorst <opensource@vdorst.com> --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -4021,6 +4021,7 @@ static const struct net_device_ops mtk_n +@@ -3994,6 +3994,7 @@ static const struct net_device_ops mtk_n static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np) { @@ -22,7 +22,7 @@ Signed-off-by: RenĂ© van Dorst <opensource@vdorst.com> const __be32 *_id = of_get_property(np, "reg", NULL); phy_interface_t phy_mode; struct phylink *phylink; -@@ -4149,6 +4150,9 @@ static int mtk_add_mac(struct mtk_eth *e +@@ -4122,6 +4123,9 @@ static int mtk_add_mac(struct mtk_eth *e register_netdevice_notifier(&mac->device_notifier); } |