kernel: fix regression on mt7986
authorFelix Fietkau <nbd@nbd.name>
Wed, 23 Nov 2022 10:33:44 +0000 (11:33 +0100)
committerFelix Fietkau <nbd@nbd.name>
Wed, 23 Nov 2022 10:34:43 +0000 (11:34 +0100)
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>
target/linux/generic/pending-5.15/732-14-net-ethernet-mtk_eth_soc-drop-generic-vlan-rx-offloa.patch

index 4339321a96900541d3d8abb25ad15361fca73eb1..1a32c02f1db0cf053d4bdfd21e55fc5ee96e0fa0 100644 (file)
@@ -151,16 +151,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        return 0;
  }
  
-@@ -3503,15 +3481,15 @@ static int mtk_hw_init(struct mtk_eth *e
-       /* Indicates CDM to parse the MTK special tag from CPU
-        * which also is working out for untag packets.
-        */
--      val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
--      mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
+@@ -3508,10 +3486,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_CDMQ_IG_CTRL);
-+              mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
-+
                val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
                mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL);
 -      }
@@ -172,7 +164,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /* set interrupt delays based on current Net DIM sample */
        mtk_dim_rx(&eth->rx_dim.work);
-@@ -4132,7 +4110,7 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4132,7 +4109,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 &