kernel: bump 4.14 to 4.14.20
[openwrt/openwrt.git] / target / linux / mediatek / patches-4.14 / 0035-net-mediatek-disable-RX-VLan-offloading.patch
1 From 35b83b85e752a6660b92f08c0fb912308f25cf6d Mon Sep 17 00:00:00 2001
2 From: John Crispin <john@phrozen.org>
3 Date: Thu, 10 Aug 2017 15:56:40 +0200
4 Subject: [PATCH 35/57] net: mediatek: disable RX VLan offloading
5
6 Signed-off-by: John Crispin <john@phrozen.org>
7 ---
8 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 9 ++++++---
9 drivers/net/ethernet/mediatek/mtk_eth_soc.h | 2 --
10 2 files changed, 6 insertions(+), 5 deletions(-)
11
12 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
13 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
14 @@ -709,8 +709,8 @@ static int mtk_tx_map(struct sk_buff *sk
15 txd4 |= TX_DMA_CHKSUM;
16
17 /* VLAN header offload */
18 - if (skb_vlan_tag_present(skb))
19 - txd4 |= TX_DMA_INS_VLAN | skb_vlan_tag_get(skb);
20 +// if (skb_vlan_tag_present(skb))
21 +// txd4 |= TX_DMA_INS_VLAN | skb_vlan_tag_get(skb);
22
23 mapped_addr = dma_map_single(eth->dev, skb->data,
24 skb_headlen(skb), DMA_TO_DEVICE);
25 @@ -1979,7 +1979,10 @@ static int mtk_hw_init(struct mtk_eth *e
26 mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
27
28 /* Enable RX VLan Offloading */
29 - mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
30 + if (MTK_HW_FEATURES & NETIF_F_HW_VLAN_CTAG_RX)
31 + mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
32 + else
33 + mtk_w32(eth, 0, MTK_CDMP_EG_CTRL);
34
35 /* enable interrupt delay for RX */
36 mtk_w32(eth, MTK_PDMA_DELAY_RX_DELAY, MTK_PDMA_DELAY_INT);
37 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
38 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
39 @@ -34,8 +34,6 @@
40 NETIF_MSG_TX_ERR)
41 #define MTK_HW_FEATURES (NETIF_F_IP_CSUM | \
42 NETIF_F_RXCSUM | \
43 - NETIF_F_HW_VLAN_CTAG_TX | \
44 - NETIF_F_HW_VLAN_CTAG_RX | \
45 NETIF_F_SG | NETIF_F_TSO | \
46 NETIF_F_TSO6 | \
47 NETIF_F_IPV6_CSUM)