[openwrt/openwrt] kernel: qca-nss-dp: update to 12.5.5

LEDE Commits lede-commits at lists.infradead.org
Tue Feb 25 01:46:36 PST 2025


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/a76651a24a440505de15c6340f53a84fb2052155

commit a76651a24a440505de15c6340f53a84fb2052155
Author: Kristian Skramstad <kristian+github at 83.no>
AuthorDate: Sun Jan 26 09:50:23 2025 +0100

    kernel: qca-nss-dp: update to 12.5.5
    
    There is some new changes since 12.5.r2 to 12.5.5, so refresh
    and update patches.
    
    Changes:
    modified:   package/kernel/qca-nss-dp/Makefile
    modified:   package/kernel/qca-nss-dp/patches/0006-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch
    modified:   package/kernel/qca-nss-dp/patches/0008-nss-dp-allow-setting-netdev-name-from-DTS.patch
    deleted:    package/kernel/qca-nss-dp/patches/0011-01-edma_v1-rework-hw_reset-logic-to-permit-rmmod-and-in.patch
    deleted:    package/kernel/qca-nss-dp/patches/0011-02-nss_dp_switchdev-correctly-unregister-notifier-on-dp.patch
    deleted:    package/kernel/qca-nss-dp/patches/0011-03-nss_dp_main-swap-dp_exit-function-call.patch
    deleted:    package/kernel/qca-nss-dp/patches/0011-04-nss_dp_main-call-unregister_netdev-first-in-dp_remov.patch
    deleted:    package/kernel/qca-nss-dp/patches/0011-05-nss_dp_main-use-phy_detach-instead-of-disconnect-in-.patch
    deleted:    package/kernel/qca-nss-dp/patches/0011-06-edma_v1-skip-edma_disable_port-in-edma_cleanup-subse.patch
    
    Log:
    2024-10-16 |4c9f671| [qca-nss-dp] removed the calling of fal_port_autoneg_status_get
    2024-10-16 |fb33119| Merge "[qca-nss-dp] Change Debug Level of TX Complete Errors"
    2024-10-15 |e197b9d| [qca-nss-dp] Change Debug Level of TX Complete Errors
    2024-10-03 |1b7aeb1| Merge remote-tracking branch origin/AU_LINUX_QSDK_GINGER_OPEN_TARGET_ALL.12.5.5.230.918 into HEAD
    2024-10-01 |830ac73| Merge "[qca-nss-dp] Enable rmmod support for qca-nss-dp module."
    2024-06-05 |aef242d| [qca-nss-dp] Enable rmmod support for qca-nss-dp module.
    2024-09-18 |b1bfeb6| Merge "[qca-nss-dp] Move pr_info to pr_debug"
    2024-09-12 |54aee26| Merge "[qca-nss-dp] Fix Loopback ring teardown path"
    2024-09-10 |21f6567| Merge "[qca-nss-dp] Extend Tx Complete errors to track individual error type"
    2024-09-10 |7fee76f| Merge "[qca-nss-dp] Destination VP xmit support"
    2024-09-09 |0d4ecfd| [qca-nss-dp] Fix Loopback ring teardown path
    2024-08-29 |438ab8e| [qca-nss-dp] Move pr_info to pr_debug
    2024-08-29 |3f45e3d| Merge "[qca-nss-dp] Fix EDMA Recovery API to Prevent Multiple RX NAPI Add Calls"
    2024-08-23 |7a792b1| [qca-nss-dp] Fix EDMA Recovery API to Prevent Multiple RX NAPI Add Calls
    2024-07-08 |1227746| [qca-nss-dp] Add support for DDR extended buffer
    2024-08-20 |d45bceb| [qca-nss-dp] Extend Tx Complete errors to track individual error type
    2024-06-17 |a8f7155| [qca-nss-dp] Destination VP xmit support
    2024-08-21 |a5d189b| Merge "[qca-nss-dp] Support for the PPE-VP Qdisc feature"
    2024-08-16 |da97bc7| Merge "[qca-nss-dp] Restrict compilation of a file in DP module"
    2024-06-22 |bf90fe9| [qca-nss-dp] Support for the PPE-VP Qdisc feature
    2024-02-07 |6ceeb8f| [qca-nss-dp] Enable EDMA driver to allocate from beyond 4GB space.
    2024-03-19 |4a7ff28| [qca-nss-dp] Restrict compilation of a file in DP module
    2024-07-09 |73bad34| [qca-nss-dp] Check for DS node state before getting ppe queue
    2024-05-03 |22cdbd6| [qca-nss-dp] Add PPE-DS Enqueue vp to queue mapping
    2024-07-04 |5d6ef18| Merge "[qca-nss-dp] NAPI Budget change for KPI improvement"
    2024-07-02 |cd0b543| Merge "[qca-nss-dp] Read fake_mac header indication from rx_desc"
    2024-07-01 |160b988| [qca-nss-dp] NAPI Budget change for KPI improvement
    2024-05-22 |54c2fd1| [qca-nss-dp]: Fixing SA warnings as part of qca-nss-dp module.
    2024-06-22 |602534b| [qca-nss-dp] Read fake_mac header indication from rx_desc
    2023-11-24 |10210e2| [qca-nss-dp] EDMA register changes for ipq54xx
    2024-05-22 |1af0d03| Merge "[qca-nss-dp]: Change to support PPE-VP path for MLO Assist"
    2024-05-15 |2acd9f3| [qca-nss-dp]: Change to support PPE-VP path for MLO Assist
    2023-09-27 |1ca59f2| [qca-nss-dp] DP changes for ipq54xx
    2024-04-18 |bc60c5a| Merge "[qca-nss-dp] Add support for the XGMAC latency computation"
    2024-04-18 |6a67d6d| Merge "[qca-nss-dp] Fix the packets processing in the Rx NAPI"
    
    Signed-off-by: Kristian Skramstad <kristian+github at 83.no>
    Link: https://github.com/openwrt/openwrt/pull/17731
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/kernel/qca-nss-dp/Makefile                 |  6 +--
 ...-Use-a-phy-handle-property-to-connect-to-.patch | 12 ++---
 ...nss-dp-allow-setting-netdev-name-from-DTS.patch |  2 +-
 ...ork-hw_reset-logic-to-permit-rmmod-and-in.patch | 43 ----------------
 ...chdev-correctly-unregister-notifier-on-dp.patch | 59 ----------------------
 ...03-nss_dp_main-swap-dp_exit-function-call.patch | 35 -------------
 ...-call-unregister_netdev-first-in-dp_remov.patch | 35 -------------
 ...-use-phy_detach-instead-of-disconnect-in-.patch | 26 ----------
 ...p-edma_disable_port-in-edma_cleanup-subse.patch | 37 --------------
 .../0012-01-syn-gmac-use-standard-DMA-api.patch    | 43 ++++++----------
 ...xx-use-corrent-scm-function-to-write-tcsr.patch |  5 --
 .../0013-nss_dp_main-support-fixed-link.patch      |  7 +--
 12 files changed, 27 insertions(+), 283 deletions(-)

diff --git a/package/kernel/qca-nss-dp/Makefile b/package/kernel/qca-nss-dp/Makefile
index a917f0518c..08cf471228 100644
--- a/package/kernel/qca-nss-dp/Makefile
+++ b/package/kernel/qca-nss-dp/Makefile
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-dp.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2024-04-16
-PKG_SOURCE_VERSION:=5bf8b91e9fc209f175f9a58723b03055ace3d581
-PKG_MIRROR_HASH:=e86b04ea674c18fb69cd09a45ccab50317b85117e40d76c8457052c2e55d7c18
+PKG_SOURCE_DATE:=2024-11-18
+PKG_SOURCE_VERSION:=4c9f671a84c866999fe938b900e76e197b62ee02
+PKG_MIRROR_HASH:=45568d7f1268b67d752f7085f6ef8397ca8ee4e5456ef121b8a285bded99dc82
 
 PKG_BUILD_PARALLEL:=1
 PKG_FLAGS:=nonshared
diff --git a/package/kernel/qca-nss-dp/patches/0006-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch b/package/kernel/qca-nss-dp/patches/0006-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch
index 518e961760..e78ee6da2f 100644
--- a/package/kernel/qca-nss-dp/patches/0006-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch
+++ b/package/kernel/qca-nss-dp/patches/0006-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch
@@ -43,7 +43,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
  
 --- a/nss_dp_main.c
 +++ b/nss_dp_main.c
-@@ -436,7 +436,7 @@ static int nss_dp_open(struct net_device
+@@ -464,7 +464,7 @@ static int nss_dp_open(struct net_device
  
  	netif_start_queue(netdev);
  
@@ -52,7 +52,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
  		/* Notify data plane link is up */
  		if (dp_priv->data_plane_ops->link_state(dp_priv->dpc, 1)) {
  			netdev_dbg(netdev, "Data plane set link failed\n");
-@@ -633,6 +633,12 @@ static int32_t nss_dp_of_get_pdata(struc
+@@ -661,6 +661,12 @@ static int32_t nss_dp_of_get_pdata(struc
  		return -EFAULT;
  	}
  
@@ -65,7 +65,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
  	if (of_property_read_u32(np, "qcom,mactype", &hal_pdata->mactype)) {
  		pr_err("%s: error reading mactype\n", np->name);
  		return -EFAULT;
-@@ -653,18 +659,6 @@ static int32_t nss_dp_of_get_pdata(struc
+@@ -681,18 +687,6 @@ static int32_t nss_dp_of_get_pdata(struc
  		return -EFAULT;
  #endif
  
@@ -84,7 +84,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
  #if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0))
  	maddr = (uint8_t *)of_get_mac_address(np);
  #if (LINUX_VERSION_CODE > KERNEL_VERSION(5, 4, 0))
-@@ -753,56 +747,6 @@ static int32_t nss_dp_of_get_pdata(struc
+@@ -781,56 +775,6 @@ static int32_t nss_dp_of_get_pdata(struc
  	return 0;
  }
  
@@ -141,7 +141,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
  #ifdef CONFIG_NET_SWITCHDEV
  /*
   * nss_dp_is_phy_dev()
-@@ -861,7 +805,6 @@ static int32_t nss_dp_probe(struct platf
+@@ -889,7 +833,6 @@ static int32_t nss_dp_probe(struct platf
  	struct device_node *np = pdev->dev.of_node;
  	struct nss_gmac_hal_platform_data gmac_hal_pdata;
  	int32_t ret = 0;
@@ -149,7 +149,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
  #if defined(NSS_DP_PPE_SUPPORT)
  	uint32_t vsi_id;
  	fal_port_t port_id;
-@@ -940,22 +883,16 @@ static int32_t nss_dp_probe(struct platf
+@@ -968,22 +911,16 @@ static int32_t nss_dp_probe(struct platf
  
  	dp_priv->drv_flags |= NSS_DP_PRIV_FLAG(INIT_DONE);
  
diff --git a/package/kernel/qca-nss-dp/patches/0008-nss-dp-allow-setting-netdev-name-from-DTS.patch b/package/kernel/qca-nss-dp/patches/0008-nss-dp-allow-setting-netdev-name-from-DTS.patch
index d70284dfb5..9af770fcca 100644
--- a/package/kernel/qca-nss-dp/patches/0008-nss-dp-allow-setting-netdev-name-from-DTS.patch
+++ b/package/kernel/qca-nss-dp/patches/0008-nss-dp-allow-setting-netdev-name-from-DTS.patch
@@ -15,7 +15,7 @@ Signed-off-by: Robert Marko <robimarko at gmail.com>
 
 --- a/nss_dp_main.c
 +++ b/nss_dp_main.c
-@@ -804,18 +804,29 @@ static int32_t nss_dp_probe(struct platf
+@@ -832,18 +832,29 @@ static int32_t nss_dp_probe(struct platf
  	struct nss_dp_dev *dp_priv;
  	struct device_node *np = pdev->dev.of_node;
  	struct nss_gmac_hal_platform_data gmac_hal_pdata;
diff --git a/package/kernel/qca-nss-dp/patches/0011-01-edma_v1-rework-hw_reset-logic-to-permit-rmmod-and-in.patch b/package/kernel/qca-nss-dp/patches/0011-01-edma_v1-rework-hw_reset-logic-to-permit-rmmod-and-in.patch
deleted file mode 100644
index 7e2a593657..0000000000
--- a/package/kernel/qca-nss-dp/patches/0011-01-edma_v1-rework-hw_reset-logic-to-permit-rmmod-and-in.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From c318c90b824c59539bf2e33618e381293398616c Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Tue, 16 Apr 2024 15:02:49 +0200
-Subject: [PATCH 1/6] edma_v1: rework hw_reset logic to permit rmmod and insmod
-
-Rework hw_reset logic for edma v1 to permit rmmod and insmod by using
-get_exclusive_released variant (assuming the reset control was released)
-and manually acquire and release it.
-
-This permits rmmod and insmod without triggering warning or receiving
--EBUSY errors.
-
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
----
- hal/dp_ops/edma_dp/edma_v1/edma_cfg.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/hal/dp_ops/edma_dp/edma_v1/edma_cfg.c
-+++ b/hal/dp_ops/edma_dp/edma_v1/edma_cfg.c
-@@ -719,18 +719,22 @@ int edma_hw_reset(struct edma_hw *ehw)
- 	struct reset_control *rst;
- 	struct platform_device *pdev = ehw->pdev;
- 
--	rst = devm_reset_control_get(&pdev->dev, EDMA_HW_RESET_ID);
-+	rst = devm_reset_control_get_exclusive_released(&pdev->dev, EDMA_HW_RESET_ID);
- 	if (IS_ERR(rst)) {
- 		pr_warn("DTS Node: %s does not exist\n", EDMA_HW_RESET_ID);
- 		return -EINVAL;
- 	}
- 
-+	reset_control_acquire(rst);
-+
- 	reset_control_assert(rst);
- 	udelay(100);
- 
- 	reset_control_deassert(rst);
- 	udelay(100);
- 
-+	reset_control_release(rst);
-+
- 	pr_info("EDMA HW Reset completed succesfully\n");
- 
- 	return 0;
diff --git a/package/kernel/qca-nss-dp/patches/0011-02-nss_dp_switchdev-correctly-unregister-notifier-on-dp.patch b/package/kernel/qca-nss-dp/patches/0011-02-nss_dp_switchdev-correctly-unregister-notifier-on-dp.patch
deleted file mode 100644
index 5abf178d38..0000000000
--- a/package/kernel/qca-nss-dp/patches/0011-02-nss_dp_switchdev-correctly-unregister-notifier-on-dp.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 079bfe441b274a8c06474be82e4ccc88599a5e0e Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Tue, 16 Apr 2024 16:08:46 +0200
-Subject: [PATCH 2/6] nss_dp_switchdev: correctly unregister notifier on
- dp_remove
-
-Correctly unregister notifier on dp_remove to fix kernel panic on system
-reboot.
-
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
----
- include/nss_dp_dev.h |  1 +
- nss_dp_main.c        |  4 ++++
- nss_dp_switchdev.c   | 13 +++++++++++++
- 3 files changed, 18 insertions(+)
-
---- a/include/nss_dp_dev.h
-+++ b/include/nss_dp_dev.h
-@@ -349,6 +349,7 @@ void nss_dp_set_ethtool_ops(struct net_d
-  */
- #ifdef CONFIG_NET_SWITCHDEV
- void nss_dp_switchdev_setup(struct net_device *dev);
-+void nss_dp_switchdev_remove(struct net_device *dev);
- bool nss_dp_is_phy_dev(struct net_device *dev);
- #endif
- 
---- a/nss_dp_main.c
-+++ b/nss_dp_main.c
-@@ -970,6 +970,10 @@ static int nss_dp_remove(struct platform
- 		if (!dp_priv)
- 			continue;
- 
-+		#ifdef CONFIG_NET_SWITCHDEV
-+			nss_dp_switchdev_remove(dp_priv->netdev);
-+		#endif
-+
- 		dp_ops = dp_priv->data_plane_ops;
- 		hal_ops = dp_priv->gmac_hal_ops;
- 
---- a/nss_dp_switchdev.c
-+++ b/nss_dp_switchdev.c
-@@ -648,4 +648,17 @@ void nss_dp_switchdev_setup(struct net_d
- 
- 	switch_init_done = true;
- }
-+
-+void nss_dp_switchdev_remove(struct net_device *dev)
-+{
-+	if (!switch_init_done)
-+		return;
-+
-+	if (nss_dp_sw_ev_nb)
-+		unregister_switchdev_notifier(nss_dp_sw_ev_nb);
-+
-+	unregister_switchdev_blocking_notifier(&nss_dp_switchdev_notifier);
-+
-+	switch_init_done = false;
-+}
- #endif
diff --git a/package/kernel/qca-nss-dp/patches/0011-03-nss_dp_main-swap-dp_exit-function-call.patch b/package/kernel/qca-nss-dp/patches/0011-03-nss_dp_main-swap-dp_exit-function-call.patch
deleted file mode 100644
index 08088954fb..0000000000
--- a/package/kernel/qca-nss-dp/patches/0011-03-nss_dp_main-swap-dp_exit-function-call.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From ab7b1a361d51157118e1a61ce6530a59bcef4b61 Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Tue, 16 Apr 2024 16:10:09 +0200
-Subject: [PATCH 3/6] nss_dp_main: swap dp_exit function call
-
-First unregister nss_dp platform devices then cleanup the HAL.
-
-This is to fix kernel panic by cleaning data that needs to be used by
-platform driver unregister functions.
-
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
----
- nss_dp_main.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/nss_dp_main.c
-+++ b/nss_dp_main.c
-@@ -1161,6 +1161,8 @@ int __init nss_dp_init(void)
-  */
- void __exit nss_dp_exit(void)
- {
-+	platform_driver_unregister(&nss_dp_drv);
-+
- 	/*
- 	 * TODO Move this to soc_ops
- 	 */
-@@ -1168,8 +1170,6 @@ void __exit nss_dp_exit(void)
- 		nss_dp_hal_cleanup();
- 		dp_global_ctx.common_init_done = false;
- 	}
--
--	platform_driver_unregister(&nss_dp_drv);
- }
- 
- module_init(nss_dp_init);
diff --git a/package/kernel/qca-nss-dp/patches/0011-04-nss_dp_main-call-unregister_netdev-first-in-dp_remov.patch b/package/kernel/qca-nss-dp/patches/0011-04-nss_dp_main-call-unregister_netdev-first-in-dp_remov.patch
deleted file mode 100644
index f8daa525fe..0000000000
--- a/package/kernel/qca-nss-dp/patches/0011-04-nss_dp_main-call-unregister_netdev-first-in-dp_remov.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 33dd3aa6d0f9cd240d63f53a49157ae44ebccf87 Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Tue, 16 Apr 2024 16:12:11 +0200
-Subject: [PATCH 4/6] nss_dp_main: call unregister_netdev first in dp_remove
- and carrifer_off
-
-In dp_remove move unregister_netdev up before calling exit and deinit
-and first call netif_carrier_off to stop any traffic from happening and
-prevent kernel panics for napi in the middle of transfer.
-
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
----
- nss_dp_main.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/nss_dp_main.c
-+++ b/nss_dp_main.c
-@@ -977,6 +977,9 @@ static int nss_dp_remove(struct platform
- 		dp_ops = dp_priv->data_plane_ops;
- 		hal_ops = dp_priv->gmac_hal_ops;
- 
-+		netif_carrier_off(dp_priv->netdev);
-+		unregister_netdev(dp_priv->netdev);
-+
- 		if (dp_priv->phydev)
- 			phy_disconnect(dp_priv->phydev);
- 
-@@ -988,7 +991,6 @@ static int nss_dp_remove(struct platform
- #endif
- 		hal_ops->exit(dp_priv->gmac_hal_ctx);
- 		dp_ops->deinit(dp_priv->dpc);
--		unregister_netdev(dp_priv->netdev);
- 		free_netdev(dp_priv->netdev);
- 		dp_global_ctx.nss_dp[i] = NULL;
- 	}
diff --git a/package/kernel/qca-nss-dp/patches/0011-05-nss_dp_main-use-phy_detach-instead-of-disconnect-in-.patch b/package/kernel/qca-nss-dp/patches/0011-05-nss_dp_main-use-phy_detach-instead-of-disconnect-in-.patch
deleted file mode 100644
index 1633e009ea..0000000000
--- a/package/kernel/qca-nss-dp/patches/0011-05-nss_dp_main-use-phy_detach-instead-of-disconnect-in-.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 655b07b701271bc00952fe64aeb14f993a48a50e Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Tue, 16 Apr 2024 16:17:36 +0200
-Subject: [PATCH 5/6] nss_dp_main: use phy_detach instead of disconnect in
- dp_remove
-
-Use phy_detach instead of disconnect in dp_remove. On Module remove, phy
-are already disconnected but they need to be detached to be correctly
-reattached later with an insmod.
-
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
----
- nss_dp_main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/nss_dp_main.c
-+++ b/nss_dp_main.c
-@@ -981,7 +981,7 @@ static int nss_dp_remove(struct platform
- 		unregister_netdev(dp_priv->netdev);
- 
- 		if (dp_priv->phydev)
--			phy_disconnect(dp_priv->phydev);
-+			phy_detach(dp_priv->phydev);
- 
- #if defined(NSS_DP_PPE_SUPPORT)
- 		/*
diff --git a/package/kernel/qca-nss-dp/patches/0011-06-edma_v1-skip-edma_disable_port-in-edma_cleanup-subse.patch b/package/kernel/qca-nss-dp/patches/0011-06-edma_v1-skip-edma_disable_port-in-edma_cleanup-subse.patch
deleted file mode 100644
index ad784e557f..0000000000
--- a/package/kernel/qca-nss-dp/patches/0011-06-edma_v1-skip-edma_disable_port-in-edma_cleanup-subse.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From c7c59c6097d94dbab8fc68dae798017bdbc5b3b9 Mon Sep 17 00:00:00 2001
-From: Christian Marangi <ansuelsmth at gmail.com>
-Date: Tue, 16 Apr 2024 16:22:32 +0200
-Subject: [PATCH 6/6] edma_v1: skip edma_disable_port in edma_cleanup
- subsequent run
-
-Skip edma_disable_port in edma_cleanup subsequent run as it will cause
-the kernel panic as the regs are already freed by previous run of
-edma_cleanup. It's use it's not clear but the call is already done in
-the first run of edma_cleanup. Maybe an oversight never dropped?
-
-Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
----
- hal/dp_ops/edma_dp/edma_v1/edma_data_plane.c | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
---- a/hal/dp_ops/edma_dp/edma_v1/edma_data_plane.c
-+++ b/hal/dp_ops/edma_dp/edma_v1/edma_data_plane.c
-@@ -326,9 +326,15 @@ void edma_cleanup(bool is_dp_override)
- 		 * Disable EDMA only at module exit time, since NSS firmware
- 		 * depends on this setting.
- 		 */
--		if (!is_dp_override) {
--			edma_disable_port();
--		}
-+		/* This call will make the kernel panic as reg used by
-+		 * edma_disable_port are already freed by previous call of
-+		 * edma_cleanup. Logic is not clear of WHY this is called.
-+		 * Keep this here for reference if someone EVER wants
-+		 * to investigate.
-+		 */
-+		// if (!is_dp_override) {
-+		// 	edma_disable_port();
-+		// }
- 		return;
- 	}
- 
diff --git a/package/kernel/qca-nss-dp/patches/0012-01-syn-gmac-use-standard-DMA-api.patch b/package/kernel/qca-nss-dp/patches/0012-01-syn-gmac-use-standard-DMA-api.patch
index 882bc8cad9..654f6ef99f 100644
--- a/package/kernel/qca-nss-dp/patches/0012-01-syn-gmac-use-standard-DMA-api.patch
+++ b/package/kernel/qca-nss-dp/patches/0012-01-syn-gmac-use-standard-DMA-api.patch
@@ -16,11 +16,9 @@ Signed-off-by: George Moussalem <george.moussalem at outlook.com>
  hal/dp_ops/syn_gmac_dp/syn_dp_tx.c     | 23 ++++---------
  4 files changed, 42 insertions(+), 44 deletions(-)
 
-diff --git a/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_rx.c b/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_rx.c
-index 8cbbcaaf..1c9006c7 100644
 --- a/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_rx.c
 +++ b/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_rx.c
-@@ -26,6 +26,7 @@ static int syn_dp_cfg_rx_setup_desc_queue(struct syn_dp_info *dev_info)
+@@ -26,6 +26,7 @@ static int syn_dp_cfg_rx_setup_desc_queu
  {
  	struct syn_dp_info_rx *rx_info = &dev_info->dp_info_rx;
  	struct dma_desc_rx *first_desc = NULL;
@@ -28,7 +26,7 @@ index 8cbbcaaf..1c9006c7 100644
  	struct net_device *netdev = rx_info->netdev;
  
  	netdev_dbg(netdev, "Total size of memory required for Rx Descriptors in Ring Mode = %u\n", (uint32_t)((sizeof(struct dma_desc_rx) * SYN_DP_RX_DESC_SIZE)));
-@@ -33,13 +34,15 @@ static int syn_dp_cfg_rx_setup_desc_queue(struct syn_dp_info *dev_info)
+@@ -33,13 +34,15 @@ static int syn_dp_cfg_rx_setup_desc_queu
  	/*
  	 * Allocate cacheable descriptors for Rx
  	 */
@@ -46,7 +44,7 @@ index 8cbbcaaf..1c9006c7 100644
  	rx_info->rx_desc = first_desc;
  	syn_dp_gmac_rx_desc_init_ring(rx_info->rx_desc, SYN_DP_RX_DESC_SIZE);
  
-@@ -98,6 +101,10 @@ void syn_dp_cfg_rx_cleanup_rings(struct syn_dp_info *dev_info)
+@@ -98,6 +101,10 @@ void syn_dp_cfg_rx_cleanup_rings(struct
  	for (i = 0; i < rx_info->busy_rx_desc_cnt; i++) {
  		rx_skb_index = (rx_skb_index + i) & SYN_DP_RX_DESC_MAX_INDEX;
  		rxdesc = rx_info->rx_desc;
@@ -57,7 +55,7 @@ index 8cbbcaaf..1c9006c7 100644
  		skb = rx_info->rx_buf_pool[rx_skb_index].skb;
  		if (unlikely(skb != NULL)) {
  			dev_kfree_skb_any(skb);
-@@ -105,7 +112,8 @@ void syn_dp_cfg_rx_cleanup_rings(struct syn_dp_info *dev_info)
+@@ -105,7 +112,8 @@ void syn_dp_cfg_rx_cleanup_rings(struct
  		}
  	}
  
@@ -67,11 +65,9 @@ index 8cbbcaaf..1c9006c7 100644
  	rx_info->rx_desc = NULL;
  	dev_info->rx_desc_dma_addr = (dma_addr_t)0;
  }
-diff --git a/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_tx.c b/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_tx.c
-index bf5e19a0..284e8880 100644
 --- a/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_tx.c
 +++ b/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_tx.c
-@@ -91,6 +91,8 @@ void syn_dp_cfg_tx_cleanup_rings(struct syn_dp_info *dev_info)
+@@ -91,6 +91,8 @@ void syn_dp_cfg_tx_cleanup_rings(struct
  		tx_skb_index = syn_dp_tx_inc_index(tx_skb_index, i);
  		txdesc = tx_info->tx_desc;
  
@@ -80,11 +76,9 @@ index bf5e19a0..284e8880 100644
  		skb = tx_info->tx_buf_pool[tx_skb_index].skb;
  		if (unlikely(skb != NULL)) {
  			dev_kfree_skb_any(skb);
-diff --git a/hal/dp_ops/syn_gmac_dp/syn_dp_rx.c b/hal/dp_ops/syn_gmac_dp/syn_dp_rx.c
-index 1ddeb7d6..1798d4e7 100644
 --- a/hal/dp_ops/syn_gmac_dp/syn_dp_rx.c
 +++ b/hal/dp_ops/syn_gmac_dp/syn_dp_rx.c
-@@ -73,16 +73,6 @@ static inline void syn_dp_rx_refill_one_desc(struct dma_desc_rx *rx_desc,
+@@ -73,16 +73,6 @@ static inline void syn_dp_rx_refill_one_
   */
  static inline void syn_dp_rx_inval_and_flush(struct syn_dp_info_rx *rx_info, uint32_t start, uint32_t end)
  {
@@ -101,7 +95,7 @@ index 1ddeb7d6..1798d4e7 100644
  	dsb(st);
  }
  
-@@ -124,15 +114,19 @@ int syn_dp_rx_refill_page_mode(struct syn_dp_info_rx *rx_info)
+@@ -124,15 +114,19 @@ int syn_dp_rx_refill_page_mode(struct sy
  			break;
  		}
  
@@ -125,7 +119,7 @@ index 1ddeb7d6..1798d4e7 100644
  		rx_refill_idx = rx_info->rx_refill_idx;
  		rx_desc = rx_info->rx_desc + rx_refill_idx;
  
-@@ -181,8 +175,15 @@ int syn_dp_rx_refill(struct syn_dp_info_rx *rx_info)
+@@ -181,8 +175,15 @@ int syn_dp_rx_refill(struct syn_dp_info_
  
  		skb_reserve(skb, SYN_DP_SKB_HEADROOM + NET_IP_ALIGN);
  
@@ -143,7 +137,7 @@ index 1ddeb7d6..1798d4e7 100644
  		rx_refill_idx = rx_info->rx_refill_idx;
  		rx_desc = rx_info->rx_desc + rx_refill_idx;
  
-@@ -407,12 +408,6 @@ int syn_dp_rx(struct syn_dp_info_rx *rx_info, int budget)
+@@ -407,12 +408,6 @@ int syn_dp_rx(struct syn_dp_info_rx *rx_
  	 * this code is executing.
  	 */
  	end = syn_dp_rx_inc_index(rx_info->rx_idx, busy);
@@ -156,7 +150,7 @@ index 1ddeb7d6..1798d4e7 100644
  
  	dsb(st);
  
-@@ -439,8 +434,12 @@ int syn_dp_rx(struct syn_dp_info_rx *rx_info, int budget)
+@@ -439,8 +434,12 @@ int syn_dp_rx(struct syn_dp_info_rx *rx_
  		 * speculative prefetch by CPU may have occurred.
  		 */
  		frame_length = syn_dp_gmac_get_rx_desc_frame_length(status);
@@ -171,11 +165,9 @@ index 1ddeb7d6..1798d4e7 100644
  		prefetch((void *)rx_buf->map_addr_virt);
  
  		rx_next_idx = syn_dp_rx_inc_index(rx_idx, 1);
-diff --git a/hal/dp_ops/syn_gmac_dp/syn_dp_tx.c b/hal/dp_ops/syn_gmac_dp/syn_dp_tx.c
-index c97e252b..6d4adb3f 100644
 --- a/hal/dp_ops/syn_gmac_dp/syn_dp_tx.c
 +++ b/hal/dp_ops/syn_gmac_dp/syn_dp_tx.c
-@@ -104,9 +104,7 @@ static inline struct dma_desc_tx *syn_dp_tx_process_nr_frags(struct syn_dp_info_
+@@ -104,9 +104,7 @@ static inline struct dma_desc_tx *syn_dp
  		BUG_ON(!length);
  #endif
  
@@ -186,7 +178,7 @@ index c97e252b..6d4adb3f 100644
  
  		*total_length += length;
  		tx_desc = syn_dp_tx_set_desc_sg(tx_info, dma_addr, length, DESC_OWN_BY_DMA);
-@@ -150,8 +148,7 @@ int syn_dp_tx_nr_frags(struct syn_dp_info_tx *tx_info, struct sk_buff *skb)
+@@ -150,8 +148,7 @@ int syn_dp_tx_nr_frags(struct syn_dp_inf
  	/*
  	 * Flush the dma for non-paged skb data
  	 */
@@ -196,7 +188,7 @@ index c97e252b..6d4adb3f 100644
  
  	total_len = length;
  
-@@ -256,12 +253,7 @@ int syn_dp_tx_frag_list(struct syn_dp_info_tx *tx_info, struct sk_buff *skb)
+@@ -256,12 +253,7 @@ int syn_dp_tx_frag_list(struct syn_dp_in
  		return NETDEV_TX_BUSY;
  	}
  
@@ -210,7 +202,7 @@ index c97e252b..6d4adb3f 100644
  
  	total_len = length;
  
-@@ -290,9 +282,7 @@ int syn_dp_tx_frag_list(struct syn_dp_info_tx *tx_info, struct sk_buff *skb)
+@@ -290,9 +282,7 @@ int syn_dp_tx_frag_list(struct syn_dp_in
  		BUG_ON(!length);
  #endif
  
@@ -221,7 +213,7 @@ index c97e252b..6d4adb3f 100644
  
  		total_len += length;
  
-@@ -445,6 +435,7 @@ int syn_dp_tx_complete(struct syn_dp_info_tx *tx_info, int budget)
+@@ -445,6 +435,7 @@ int syn_dp_tx_complete(struct syn_dp_inf
  			break;
  		}
  
@@ -229,7 +221,7 @@ index c97e252b..6d4adb3f 100644
  
  		if (likely(status & DESC_TX_LAST)) {
  			tx_skb_index = syn_dp_tx_comp_index_get(tx_info);
-@@ -571,9 +562,7 @@ int syn_dp_tx(struct syn_dp_info_tx *tx_info, struct sk_buff *skb)
+@@ -571,9 +562,7 @@ int syn_dp_tx(struct syn_dp_info_tx *tx_
  		return NETDEV_TX_BUSY;
  	}
  
@@ -240,6 +232,3 @@ index c97e252b..6d4adb3f 100644
  
  	/*
  	 * Queue packet to the GMAC rings
--- 
-2.40.1
-
diff --git a/package/kernel/qca-nss-dp/patches/0012-02-ipq50xx-use-corrent-scm-function-to-write-tcsr.patch b/package/kernel/qca-nss-dp/patches/0012-02-ipq50xx-use-corrent-scm-function-to-write-tcsr.patch
index 10a8eef6da..25fef48fce 100644
--- a/package/kernel/qca-nss-dp/patches/0012-02-ipq50xx-use-corrent-scm-function-to-write-tcsr.patch
+++ b/package/kernel/qca-nss-dp/patches/0012-02-ipq50xx-use-corrent-scm-function-to-write-tcsr.patch
@@ -13,8 +13,6 @@ Signed-off-by: George Moussalem <george.moussalem at outlook.com>
  hal/soc_ops/ipq50xx/nss_ipq50xx.c | 9 ++-------
  1 file changed, 2 insertions(+), 7 deletions(-)
 
-diff --git a/hal/soc_ops/ipq50xx/nss_ipq50xx.c b/hal/soc_ops/ipq50xx/nss_ipq50xx.c
-index 3e4491c0..e56de1cc 100644
 --- a/hal/soc_ops/ipq50xx/nss_ipq50xx.c
 +++ b/hal/soc_ops/ipq50xx/nss_ipq50xx.c
 @@ -18,7 +18,7 @@
@@ -41,6 +39,3 @@ index 3e4491c0..e56de1cc 100644
  		if (err) {
  			pr_err("%s: SCM TCSR write error: %d\n", __func__, err);
  		}
--- 
-2.40.1
-
diff --git a/package/kernel/qca-nss-dp/patches/0013-nss_dp_main-support-fixed-link.patch b/package/kernel/qca-nss-dp/patches/0013-nss_dp_main-support-fixed-link.patch
index 668046881a..37504b87a8 100644
--- a/package/kernel/qca-nss-dp/patches/0013-nss_dp_main-support-fixed-link.patch
+++ b/package/kernel/qca-nss-dp/patches/0013-nss_dp_main-support-fixed-link.patch
@@ -16,11 +16,9 @@ Signed-off-by: George Moussalem <george.moussalem at outlook.com>
  nss_dp_main.c | 15 ++++++++++++---
  1 file changed, 12 insertions(+), 3 deletions(-)
 
-diff --git a/nss_dp_main.c b/nss_dp_main.c
-index 9a09edd5..204063bf 100644
 --- a/nss_dp_main.c
 +++ b/nss_dp_main.c
-@@ -619,11 +619,20 @@ static int32_t nss_dp_of_get_pdata(struct device_node *np,
+@@ -662,11 +662,20 @@ static int32_t nss_dp_of_get_pdata(struc
  	}
  
  	dp_priv->phy_node = of_parse_phandle(np, "phy-handle", 0);
@@ -44,6 +42,3 @@ index 9a09edd5..204063bf 100644
  	if (of_property_read_u32(np, "qcom,mactype", &hal_pdata->mactype)) {
  		pr_err("%s: error reading mactype\n", np->name);
  		return -EFAULT;
--- 
-2.40.1
-




More information about the lede-commits mailing list