aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0088-sdk_dpaa-remove-FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE.patch
diff options
context:
space:
mode:
authorYangbo Lu <yangbo.lu@nxp.com>2020-04-10 10:47:05 +0800
committerPetr Štetiar <ynezz@true.cz>2020-05-07 12:53:06 +0200
commitcddd4591404fb4c53dc0b3c0b15b942cdbed4356 (patch)
tree392c1179de46b0f804e3789edca19069b64e6b44 /target/linux/layerscape/patches-5.4/701-net-0088-sdk_dpaa-remove-FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE.patch
parentd1d2c0b5579ea4f69a42246c9318539d61ba1999 (diff)
downloadupstream-cddd4591404fb4c53dc0b3c0b15b942cdbed4356.tar.gz
upstream-cddd4591404fb4c53dc0b3c0b15b942cdbed4356.tar.bz2
upstream-cddd4591404fb4c53dc0b3c0b15b942cdbed4356.zip
layerscape: add patches-5.4
Add patches for linux-5.4. The patches are from NXP LSDK-20.04 release which was tagged LSDK-20.04-V5.4. https://source.codeaurora.org/external/qoriq/qoriq-components/linux/ For boards LS1021A-IOT, and Traverse-LS1043 which are not involved in LSDK, port the dts patches from 4.14. The patches are sorted into the following categories: 301-arch-xxxx 302-dts-xxxx 303-core-xxxx 701-net-xxxx 801-audio-xxxx 802-can-xxxx 803-clock-xxxx 804-crypto-xxxx 805-display-xxxx 806-dma-xxxx 807-gpio-xxxx 808-i2c-xxxx 809-jailhouse-xxxx 810-keys-xxxx 811-kvm-xxxx 812-pcie-xxxx 813-pm-xxxx 814-qe-xxxx 815-sata-xxxx 816-sdhc-xxxx 817-spi-xxxx 818-thermal-xxxx 819-uart-xxxx 820-usb-xxxx 821-vfio-xxxx Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0088-sdk_dpaa-remove-FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/701-net-0088-sdk_dpaa-remove-FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE.patch127
1 files changed, 127 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0088-sdk_dpaa-remove-FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE.patch b/target/linux/layerscape/patches-5.4/701-net-0088-sdk_dpaa-remove-FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE.patch
new file mode 100644
index 0000000000..dbbe46d5a9
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/701-net-0088-sdk_dpaa-remove-FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE.patch
@@ -0,0 +1,127 @@
+From 357ab2939dbddfb6849c55be9de577db078d9037 Mon Sep 17 00:00:00 2001
+From: Madalin Bucur <madalin.bucur@nxp.com>
+Date: Fri, 12 Oct 2018 16:56:57 +0300
+Subject: [PATCH] sdk_dpaa: remove FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
+
+Remove FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE and record the
+receive CPU in skb queue mapping to maintain the same CPU
+for tx in forwarding scenarios.
+
+Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
+---
+ drivers/net/ethernet/freescale/sdk_dpaa/Kconfig | 13 +------------
+ drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.c | 2 +-
+ drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.h | 12 ++----------
+ drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_common.c | 3 +--
+ drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_common.h | 2 +-
+ drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c | 2 ++
+ 6 files changed, 8 insertions(+), 26 deletions(-)
+
+--- a/drivers/net/ethernet/freescale/sdk_dpaa/Kconfig
++++ b/drivers/net/ethernet/freescale/sdk_dpaa/Kconfig
+@@ -96,17 +96,6 @@ config FSL_DPAA_1588
+ help
+ Enable IEEE1588 support code.
+
+-config FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
+- bool "Use driver's Tx queue selection mechanism"
+- default y
+- depends on FSL_SDK_DPAA_ETH
+- help
+- The DPAA-Ethernet driver defines a ndo_select_queue() callback for optimal selection
+- of the egress FQ. That will override the XPS support for this netdevice.
+- If for whatever reason you want to be in control of the egress FQ-to-CPU selection and mapping,
+- or simply don't want to use the driver's ndo_select_queue() callback, then unselect this
+- and use the standard XPS support instead.
+-
+ config FSL_DPAA_ETH_MAX_BUF_COUNT
+ int "Maximum nuber of buffers in private bpool"
+ depends on FSL_SDK_DPAA_ETH
+@@ -178,7 +167,7 @@ config FSL_DPAA_ETH_DEBUG
+
+ config FSL_DPAA_DBG_LOOP
+ bool "DPAA Ethernet Debug loopback"
+- depends on FSL_DPAA_ETH_DEBUGFS && FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
++ depends on FSL_DPAA_ETH_DEBUGFS
+ default n
+ help
+ This option allows to divert all received traffic on a certain interface A towards a
+--- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.c
++++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.c
+@@ -678,7 +678,7 @@ static const struct net_device_ops dpa_p
+ .ndo_get_stats64 = dpa_get_stats64,
+ .ndo_set_mac_address = dpa_set_mac_address,
+ .ndo_validate_addr = eth_validate_addr,
+-#ifdef CONFIG_FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
++#ifdef CONFIG_FMAN_PFC
+ .ndo_select_queue = dpa_select_queue,
+ #endif
+ .ndo_set_rx_mode = dpa_set_rx_mode,
+--- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.h
++++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.h
+@@ -635,23 +635,15 @@ static inline void _dpa_assign_wq(struct
+ }
+ }
+
+-#ifdef CONFIG_FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
+-/* Use in lieu of skb_get_queue_mapping() */
+ #ifdef CONFIG_FMAN_PFC
++/* Use in lieu of skb_get_queue_mapping() */
+ #define dpa_get_queue_mapping(skb) \
+ (((skb)->priority < CONFIG_FMAN_PFC_COS_COUNT) ? \
+ ((skb)->priority * dpa_num_cpus + smp_processor_id()) : \
+ ((CONFIG_FMAN_PFC_COS_COUNT - 1) * \
+ dpa_num_cpus + smp_processor_id()));
+-
+ #else
+-#define dpa_get_queue_mapping(skb) \
+- raw_smp_processor_id()
+-#endif
+-#else
+-/* Use the queue selected by XPS */
+-#define dpa_get_queue_mapping(skb) \
+- skb_get_queue_mapping(skb)
++#define dpa_get_queue_mapping(skb) skb_get_queue_mapping(skb)
+ #endif
+
+ #ifdef CONFIG_PTP_1588_CLOCK_DPAA
+--- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_common.c
++++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_common.c
+@@ -841,14 +841,13 @@ bool dpa_bpid2pool_use(int bpid)
+ return false;
+ }
+
+-#ifdef CONFIG_FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
++#ifdef CONFIG_FMAN_PFC
+ u16 dpa_select_queue(struct net_device *net_dev, struct sk_buff *skb,
+ struct net_device *sb_dev,
+ select_queue_fallback_t fallback)
+ {
+ return dpa_get_queue_mapping(skb);
+ }
+-EXPORT_SYMBOL(dpa_select_queue);
+ #endif
+
+ struct dpa_fq *dpa_fq_alloc(struct device *dev,
+--- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_common.h
++++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_common.h
+@@ -172,7 +172,7 @@ struct dpa_bp *dpa_bpid2pool(int bpid);
+ void dpa_bpid2pool_map(int bpid, struct dpa_bp *dpa_bp);
+ bool dpa_bpid2pool_use(int bpid);
+ void dpa_bp_drain(struct dpa_bp *bp);
+-#ifdef CONFIG_FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
++#ifdef CONFIG_FMAN_PFC
+ u16 dpa_select_queue(struct net_device *net_dev, struct sk_buff *skb,
+ struct net_device *sb_dev,
+ select_queue_fallback_t fallback);
+--- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c
++++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c
+@@ -648,6 +648,8 @@ void __hot _dpa_rx(struct net_device *ne
+ }
+ #endif
+
++ skb_record_rx_queue(skb, raw_smp_processor_id());
++
+ if (use_gro) {
+ gro_result_t gro_result;
+ const struct qman_portal_config *pc =