OpenWrt – Rev 4

Subversion Repositories:
Rev:
From 35b83b85e752a6660b92f08c0fb912308f25cf6d Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Thu, 10 Aug 2017 15:56:40 +0200
Subject: [PATCH 35/57] net: mediatek: disable RX VLan offloading

Signed-off-by: John Crispin <john@phrozen.org>
---
 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 9 ++++++---
 drivers/net/ethernet/mediatek/mtk_eth_soc.h | 2 --
 2 files changed, 6 insertions(+), 5 deletions(-)

--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -709,8 +709,8 @@ static int mtk_tx_map(struct sk_buff *sk
                txd4 |= TX_DMA_CHKSUM;
 
        /* VLAN header offload */
-       if (skb_vlan_tag_present(skb))
-               txd4 |= TX_DMA_INS_VLAN | skb_vlan_tag_get(skb);
+//     if (skb_vlan_tag_present(skb))
+//             txd4 |= TX_DMA_INS_VLAN | skb_vlan_tag_get(skb);
 
        mapped_addr = dma_map_single(eth->dev, skb->data,
                                     skb_headlen(skb), DMA_TO_DEVICE);
@@ -1980,7 +1980,10 @@ static int mtk_hw_init(struct mtk_eth *e
        mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
 
        /* Enable RX VLan Offloading */
-       mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
+       if (MTK_HW_FEATURES & NETIF_F_HW_VLAN_CTAG_RX)
+               mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
+       else
+               mtk_w32(eth, 0, MTK_CDMP_EG_CTRL);
 
        /* enable interrupt delay for RX */
        mtk_w32(eth, MTK_PDMA_DELAY_RX_DELAY, MTK_PDMA_DELAY_INT);
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -34,8 +34,6 @@
                                 NETIF_MSG_TX_ERR)
 #define MTK_HW_FEATURES                (NETIF_F_IP_CSUM | \
                                 NETIF_F_RXCSUM | \
-                                NETIF_F_HW_VLAN_CTAG_TX | \
-                                NETIF_F_HW_VLAN_CTAG_RX | \
                                 NETIF_F_SG | NETIF_F_TSO | \
                                 NETIF_F_TSO6 | \
                                 NETIF_F_IPV6_CSUM)