0035-net-mediatek-disable-RX-VLan-offloading.patch 1.7 KB

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