diff options
author | John Crispin <john@phrozen.org> | 2018-01-08 15:06:24 +0100 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2018-02-14 11:27:50 +0100 |
commit | 7762c07c88980cff85ec20c12f18cd172260e9d9 (patch) | |
tree | d5e9e1f28c1aa9b47eadcf6b8d063b394a34ed17 /target/linux/mediatek/patches-4.9/0057-net-mediatek-add-HW-QoS-support.patch | |
parent | 04d3308b6248ef21a6f0bc3378b342906c2d2865 (diff) | |
download | upstream-7762c07c88980cff85ec20c12f18cd172260e9d9.tar.gz upstream-7762c07c88980cff85ec20c12f18cd172260e9d9.tar.bz2 upstream-7762c07c88980cff85ec20c12f18cd172260e9d9.zip |
mediatek: bump to v4.14
This drops support for all the !emmc EVB and adds banannaPi-R2
Also drop mtkhnat until the nftables offoad driver is ready
Signed-off-by: John Crispin <john@phrozen.org>
Diffstat (limited to 'target/linux/mediatek/patches-4.9/0057-net-mediatek-add-HW-QoS-support.patch')
-rw-r--r-- | target/linux/mediatek/patches-4.9/0057-net-mediatek-add-HW-QoS-support.patch | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/target/linux/mediatek/patches-4.9/0057-net-mediatek-add-HW-QoS-support.patch b/target/linux/mediatek/patches-4.9/0057-net-mediatek-add-HW-QoS-support.patch deleted file mode 100644 index f6284583a4..0000000000 --- a/target/linux/mediatek/patches-4.9/0057-net-mediatek-add-HW-QoS-support.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 660c13dfbacbf37f090a66a2b14f0c5ce7cbec81 Mon Sep 17 00:00:00 2001 -From: John Crispin <john@phrozen.org> -Date: Thu, 10 Aug 2017 16:38:27 +0200 -Subject: [PATCH 57/57] net: mediatek: add HW QoS support - -Signed-off-by: John Crispin <john@phrozen.org> ---- - drivers/net/ethernet/mediatek/Kconfig | 7 ++++ - drivers/net/ethernet/mediatek/mtk_eth_soc.c | 60 ++++++++++++++++++++++++++++- - drivers/net/ethernet/mediatek/mtk_eth_soc.h | 2 +- - 3 files changed, 66 insertions(+), 3 deletions(-) - ---- a/drivers/net/ethernet/mediatek/Kconfig -+++ b/drivers/net/ethernet/mediatek/Kconfig -@@ -21,4 +21,11 @@ config NET_MEDIATEK_HNAT - This driver supports the hardwaer NAT in the - MediaTek MT2701/MT7623 chipset family. - -+config NET_MEDIATEK_HW_QOS -+ tristate "MediaTek MT7623 hardware QoS support" -+ depends on NET_MEDIATEK_SOC -+ ---help--- -+ This driver supports the hardware QoS in the -+ MediaTek MT2701/MT7623 chipset family. -+ - endif #NET_VENDOR_MEDIATEK ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -23,6 +23,17 @@ - #include <linux/reset.h> - #include <linux/tcp.h> - -+#if defined(CONFIG_NET_MEDIATEK_HW_QOS) -+struct mtk_ioctl_reg { -+ unsigned int off; -+ unsigned int val; -+}; -+ -+#define REG_HQOS_MAX 0x3FFF -+#define RAETH_QDMA_REG_READ 0x89F8 -+#define RAETH_QDMA_REG_WRITE 0x89F9 -+#endif -+ - #if defined(CONFIG_NET_MEDIATEK_HNAT) || defined(CONFIG_NET_MEDIATEK_HNAT_MODULE) - #include "mtk_hnat/nf_hnat_mtk.h" - #endif -@@ -646,7 +657,7 @@ static int mtk_tx_map(struct sk_buff *sk - dma_addr_t mapped_addr; - unsigned int nr_frags; - int i, n_desc = 1; -- u32 txd4 = 0, fport; -+ u32 txd3 = 0, txd4 = 0, fport; - - itxd = ring->next_free; - if (itxd == ring->last_free) -@@ -675,6 +686,12 @@ static int mtk_tx_map(struct sk_buff *sk - // if (skb_vlan_tag_present(skb)) - // txd4 |= TX_DMA_INS_VLAN | skb_vlan_tag_get(skb); - -+#ifdef CONFIG_NET_MEDIATEK_HW_QOS -+ txd3 |= skb->mark & 0x7; -+ if (mac->id) -+ txd3 += 8; -+#endif -+ - mapped_addr = dma_map_single(eth->dev, skb->data, - skb_headlen(skb), DMA_TO_DEVICE); - if (unlikely(dma_mapping_error(eth->dev, mapped_addr))) -@@ -718,7 +735,8 @@ static int mtk_tx_map(struct sk_buff *sk - WRITE_ONCE(txd->txd1, mapped_addr); - WRITE_ONCE(txd->txd3, (TX_DMA_SWC | - TX_DMA_PLEN0(frag_map_size) | -- last_frag * TX_DMA_LS0)); -+ last_frag * TX_DMA_LS0 | -+ txd3)); - WRITE_ONCE(txd->txd4, fport); - - tx_buf = mtk_desc_to_tx_buf(ring, txd); -@@ -2029,7 +2047,31 @@ static void mtk_uninit(struct net_device - - static int mtk_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) - { -+#if defined(CONFIG_NET_MEDIATEK_HW_QOS) -+ struct mtk_mac *mac = netdev_priv(dev); -+ struct mtk_eth *eth = mac->hw; -+ struct mtk_ioctl_reg reg; -+#endif -+ - switch (cmd) { -+#if defined(CONFIG_NET_MEDIATEK_HW_QOS) -+ case RAETH_QDMA_REG_READ: -+ copy_from_user(®, ifr->ifr_data, sizeof(reg)); -+ if (reg.off > REG_HQOS_MAX) -+ return -EINVAL; -+ reg.val = mtk_r32(eth, 0x1800 + reg.off); -+// printk("read reg off:%x val:%x\n", reg.off, reg.val); -+ copy_to_user(ifr->ifr_data, ®, sizeof(reg)); -+ return 0; -+ -+ case RAETH_QDMA_REG_WRITE: -+ copy_from_user(®, ifr->ifr_data, sizeof(reg)); -+ if (reg.off > REG_HQOS_MAX) -+ return -EINVAL; -+ mtk_w32(eth, reg.val, 0x1800 + reg.off); -+// printk("write reg off:%x val:%x\n", reg.off, reg.val); -+ return 0; -+#endif - case SIOCGMIIPHY: - case SIOCGMIIREG: - case SIOCSMIIREG: ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h -@@ -20,7 +20,7 @@ - #define MTK_QDMA_PAGE_SIZE 2048 - #define MTK_MAX_RX_LENGTH 1536 - #define MTK_TX_DMA_BUF_LEN 0x3fff --#define MTK_DMA_SIZE 256 -+#define MTK_DMA_SIZE 2048 - #define MTK_NAPI_WEIGHT 64 - #define MTK_MAC_COUNT 2 - #define MTK_RX_ETH_HLEN (VLAN_ETH_HLEN + VLAN_HLEN + ETH_FCS_LEN) |