[openwrt/openwrt] qca-nss-dp: use OpenWrt GIT repo as upstream

LEDE Commits lede-commits at lists.infradead.org
Fri May 9 07:25:10 PDT 2025


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

commit 56d818afd6c1741a09ee84464d906b03972f0a7f
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Fri May 9 16:17:25 2025 +0200

    qca-nss-dp: use OpenWrt GIT repo as upstream
    
    Instead of having to deal with patch files, lets use the newly made
    OpenWrt GIT repo as the SSDK upstream[1].
    
    All existing patches have been applied to the same source commit, so
    there should be no intended changes.
    
    [1] https://github.com/openwrt/qca-nss-dp.git
    
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 package/kernel/qca-nss-dp/Makefile                 |   8 +-
 ...-nss-dp-Drop-_nocache-variants-of-ioremap.patch |  48 -----
 ...x-support-newer-kernels-time-stamping-API.patch |  47 -----
 .../0003-EDMA-Fix-NAPI-packet-counting.patch       |  31 ---
 ...-EDMA-Use-NAPI_POLL_WEIGHT-as-NAPI-weight.patch |  41 ----
 ...05-nss-dp-adapt-to-netif_napi_add-changes.patch |  46 ----
 ...-Use-a-phy-handle-property-to-connect-to-.patch | 183 ----------------
 ...07-nss-dp-edma-v1-use-NAPI-GRO-by-default.patch |  56 -----
 ...nss-dp-allow-setting-netdev-name-from-DTS.patch |  50 -----
 .../0009-nss-dp-switchdev-fix-FDB-roaming.patch    | 118 -----------
 .../0012-01-syn-gmac-use-standard-DMA-api.patch    | 234 ---------------------
 ...xx-use-corrent-scm-function-to-write-tcsr.patch |  41 ----
 .../0013-nss_dp_main-support-fixed-link.patch      |  44 ----
 13 files changed, 4 insertions(+), 943 deletions(-)

diff --git a/package/kernel/qca-nss-dp/Makefile b/package/kernel/qca-nss-dp/Makefile
index 08cf471228..f0cd460555 100644
--- a/package/kernel/qca-nss-dp/Makefile
+++ b/package/kernel/qca-nss-dp/Makefile
@@ -3,11 +3,11 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=qca-nss-dp
 PKG_RELEASE:=1
 
-PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-dp.git
+PKG_SOURCE_URL:=https://github.com/openwrt/qca-nss-dp.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2024-11-18
-PKG_SOURCE_VERSION:=4c9f671a84c866999fe938b900e76e197b62ee02
-PKG_MIRROR_HASH:=45568d7f1268b67d752f7085f6ef8397ca8ee4e5456ef121b8a285bded99dc82
+PKG_SOURCE_DATE:=2025-05-09
+PKG_SOURCE_VERSION:=b65a3bc9747e6725f48f55f1a1769b7599dccfc9
+PKG_MIRROR_HASH:=ef5f35b4eb4da712a9fb9861b4cffc7a7bbe1317c7464cc3ac516e76fe5b634a
 
 PKG_BUILD_PARALLEL:=1
 PKG_FLAGS:=nonshared
diff --git a/package/kernel/qca-nss-dp/patches/0001-nss-dp-Drop-_nocache-variants-of-ioremap.patch b/package/kernel/qca-nss-dp/patches/0001-nss-dp-Drop-_nocache-variants-of-ioremap.patch
deleted file mode 100644
index c998874d4e..0000000000
--- a/package/kernel/qca-nss-dp/patches/0001-nss-dp-Drop-_nocache-variants-of-ioremap.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 946381fd6fdabedf2b5a1d8647a49e3da8f1894e Mon Sep 17 00:00:00 2001
-From: Baruch Siach <baruch at tkos.co.il>
-Date: Fri, 23 Jun 2023 11:28:02 +0200
-Subject: [PATCH 1/8] nss-dp: Drop _nocache variants of ioremap()
-
-ioremap_nocache was made equivelant to ioremap and was dropped.
-
-Signed-off-by: Baruch Siach <baruch at tkos.co.il>
-Signed-off-by: Robert Marko <robimarko at gmail.com>
----
- hal/dp_ops/edma_dp/edma_v1/edma_data_plane.c | 2 +-
- hal/gmac_ops/syn/gmac/syn_if.c               | 2 +-
- hal/soc_ops/ipq50xx/nss_ipq50xx.c            | 2 +-
- 3 files changed, 3 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
-@@ -279,7 +279,7 @@ int edma_init(void)
- 	/*
- 	 * Remap register resource
- 	 */
--	edma_hw.reg_base = ioremap_nocache((edma_hw.reg_resource)->start,
-+	edma_hw.reg_base = ioremap((edma_hw.reg_resource)->start,
- 				resource_size(edma_hw.reg_resource));
- 	if (!edma_hw.reg_base) {
- 		pr_warn("Unable to remap EDMA register memory.\n");
---- a/hal/gmac_ops/syn/gmac/syn_if.c
-+++ b/hal/gmac_ops/syn/gmac/syn_if.c
-@@ -806,7 +806,7 @@ static void *syn_init(struct nss_gmac_ha
- 	 * Populate the mac base addresses
- 	 */
- 	shd->nghd.mac_base =
--		devm_ioremap_nocache(&dp_priv->pdev->dev, res->start,
-+		devm_ioremap(&dp_priv->pdev->dev, res->start,
- 							resource_size(res));
- 	if (!shd->nghd.mac_base) {
- 		netdev_dbg(ndev, "ioremap fail.\n");
---- a/hal/soc_ops/ipq50xx/nss_ipq50xx.c
-+++ b/hal/soc_ops/ipq50xx/nss_ipq50xx.c
-@@ -89,7 +89,7 @@ static void nss_dp_hal_tcsr_set(void)
- 			pr_err("%s: SCM TCSR write error: %d\n", __func__, err);
- 		}
- 	} else {
--		tcsr_addr = ioremap_nocache((tcsr_base + TCSR_GMAC_AXI_CACHE_OVERRIDE_OFFSET),
-+		tcsr_addr = ioremap((tcsr_base + TCSR_GMAC_AXI_CACHE_OVERRIDE_OFFSET),
- 						TCSR_GMAC_AXI_CACHE_OVERRIDE_REG_SIZE);
- 		if (!tcsr_addr) {
- 			pr_err("%s: ioremap failed\n", __func__);
diff --git a/package/kernel/qca-nss-dp/patches/0002-edma_tx_rx-support-newer-kernels-time-stamping-API.patch b/package/kernel/qca-nss-dp/patches/0002-edma_tx_rx-support-newer-kernels-time-stamping-API.patch
deleted file mode 100644
index d091311b97..0000000000
--- a/package/kernel/qca-nss-dp/patches/0002-edma_tx_rx-support-newer-kernels-time-stamping-API.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3357c64b3fc63fe003d5ef02ba7f6abca64d80bf Mon Sep 17 00:00:00 2001
-From: Baruch Siach <baruch at tkos.co.il>
-Date: Mon, 3 May 2021 20:07:36 +0300
-Subject: [PATCH 2/8] edma_tx_rx: support newer kernels time stamping API
-
-Timestamping API has changed in kernel 5.6, so update the implementation
-for newer kernels.
-
-Signed-off-by: Baruch Siach <baruch at tkos.co.il>
----
- hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
---- a/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c
-+++ b/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c
-@@ -227,10 +227,16 @@ void nss_phy_tstamp_rx_buf(__attribute__
- 	 * set to the correct PTP class value by calling ptp_classify_raw
- 	 * in drv->rxtstamp function.
- 	 */
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0))
- 	if (ndev && ndev->phydev && ndev->phydev->drv &&
- 			ndev->phydev->drv->rxtstamp)
- 		if(ndev->phydev->drv->rxtstamp(ndev->phydev, skb, 0))
- 			return;
-+#else
-+	if (ndev && phy_has_rxtstamp(ndev->phydev))
-+		if (phy_rxtstamp(ndev->phydev, skb, 0))
-+			return;
-+#endif
- 
- 	netif_receive_skb(skb);
- }
-@@ -248,9 +254,14 @@ void nss_phy_tstamp_tx_buf(struct net_de
- 	 * set to the correct PTP class value by calling ptp_classify_raw
- 	 * in the drv->txtstamp function.
- 	 */
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0))
- 	if (ndev && ndev->phydev && ndev->phydev->drv &&
- 			ndev->phydev->drv->txtstamp)
- 		ndev->phydev->drv->txtstamp(ndev->phydev, skb, 0);
-+#else
-+	if (ndev && phy_has_txtstamp(ndev->phydev))
-+		phy_txtstamp(ndev->phydev, skb, 0);
-+#endif
- }
- EXPORT_SYMBOL(nss_phy_tstamp_tx_buf);
- 
diff --git a/package/kernel/qca-nss-dp/patches/0003-EDMA-Fix-NAPI-packet-counting.patch b/package/kernel/qca-nss-dp/patches/0003-EDMA-Fix-NAPI-packet-counting.patch
deleted file mode 100644
index a2268010d4..0000000000
--- a/package/kernel/qca-nss-dp/patches/0003-EDMA-Fix-NAPI-packet-counting.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From c36420c219bf0e03842a11f69193c802eb42030a Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko at gmail.com>
-Date: Thu, 20 May 2021 14:56:46 +0200
-Subject: [PATCH 3/8] EDMA: Fix NAPI packet counting
-
-There is a bug in the NAPI packet counting that will
-cause NAPI over budget warnings.
-
-Signed-off-by: Baruch Siach <baruch at tkos.co.il>
-Signed-off-by: Robert Marko <robimarko at gmail.com>
----
- hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c
-+++ b/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c
-@@ -459,12 +459,12 @@ int edma_napi(struct napi_struct *napi,
- 
- 	for (i = 0; i < ehw->txcmpl_rings; i++) {
- 		txcmpl_ring = &ehw->txcmpl_ring[i];
--		work_done += edma_clean_tx(ehw, txcmpl_ring);
-+		edma_clean_tx(ehw, txcmpl_ring);
- 	}
- 
- 	for (i = 0; i < ehw->rxfill_rings; i++) {
- 		rxfill_ring = &ehw->rxfill_ring[i];
--		work_done += edma_alloc_rx_buffer(ehw, rxfill_ring);
-+		edma_alloc_rx_buffer(ehw, rxfill_ring);
- 	}
- 
- 	/*
diff --git a/package/kernel/qca-nss-dp/patches/0004-EDMA-Use-NAPI_POLL_WEIGHT-as-NAPI-weight.patch b/package/kernel/qca-nss-dp/patches/0004-EDMA-Use-NAPI_POLL_WEIGHT-as-NAPI-weight.patch
deleted file mode 100644
index 84fb02a92a..0000000000
--- a/package/kernel/qca-nss-dp/patches/0004-EDMA-Use-NAPI_POLL_WEIGHT-as-NAPI-weight.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 158032d3d4e5089afa2aa38c27c6e222ac427820 Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko at gmail.com>
-Date: Thu, 20 May 2021 14:57:46 +0200
-Subject: [PATCH 4/8] EDMA: Use NAPI_POLL_WEIGHT as NAPI weight
-
-Currently a weight of 100 is used by the EDMA, according
-to upstream max of 64 should be used and that is used for
-almost any driver.
-
-They also introduced NAPI_POLL_WEIGHT define which equals
-to 64.
-
-So use NAPI_POLL_WEIGHT as the weight.
-
-Signed-off-by: Robert Marko <robimarko at gmail.com>
----
- hal/dp_ops/edma_dp/edma_v1/edma_data_plane.c | 2 +-
- hal/dp_ops/edma_dp/edma_v1/edma_data_plane.h | 1 -
- 2 files changed, 1 insertion(+), 2 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
-@@ -845,7 +845,7 @@ static int edma_register_netdevice(struc
- 	 */
- 	if (!edma_hw.napi_added) {
- 		netif_napi_add(netdev, &edma_hw.napi, edma_napi,
--				EDMA_NAPI_WORK);
-+				NAPI_POLL_WEIGHT);
- 		/*
- 		 * Register the interrupt handlers and enable interrupts
- 		 */
---- a/hal/dp_ops/edma_dp/edma_v1/edma_data_plane.h
-+++ b/hal/dp_ops/edma_dp/edma_v1/edma_data_plane.h
-@@ -26,7 +26,6 @@
- #define EDMA_RX_PREHDR_SIZE		(sizeof(struct edma_rx_preheader))
- #define EDMA_TX_PREHDR_SIZE		(sizeof(struct edma_tx_preheader))
- #define EDMA_RING_SIZE			128
--#define EDMA_NAPI_WORK			100
- #define EDMA_START_GMACS		NSS_DP_HAL_START_IFNUM
- #define EDMA_MAX_GMACS			NSS_DP_HAL_MAX_PORTS
- #define EDMA_TX_PKT_MIN_SIZE		33	/* IPQ807x EDMA needs a minimum packet size of 33 bytes */
diff --git a/package/kernel/qca-nss-dp/patches/0005-nss-dp-adapt-to-netif_napi_add-changes.patch b/package/kernel/qca-nss-dp/patches/0005-nss-dp-adapt-to-netif_napi_add-changes.patch
deleted file mode 100644
index d5b0f62478..0000000000
--- a/package/kernel/qca-nss-dp/patches/0005-nss-dp-adapt-to-netif_napi_add-changes.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From e46c4d526d77916c00fff4fff3237b9c9d0d774d Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko at gmail.com>
-Date: Fri, 23 Jun 2023 12:04:11 +0200
-Subject: [PATCH 5/8] nss-dp: adapt to netif_napi_add() changes
-
-netif_napi_add() removed the weight argument and just uses the default
-NAPI_POLL_WEIGHT in background, so for those requiring custom weight use
-netif_napi_add_weight() instead.
-
-Signed-off-by: Robert Marko <robimarko at gmail.com>
----
- hal/dp_ops/edma_dp/edma_v1/edma_data_plane.c | 4 ++++
- hal/dp_ops/syn_gmac_dp/syn_dp.c              | 5 +++++
- 2 files changed, 9 insertions(+)
-
---- a/hal/dp_ops/edma_dp/edma_v1/edma_data_plane.c
-+++ b/hal/dp_ops/edma_dp/edma_v1/edma_data_plane.c
-@@ -844,8 +844,12 @@ static int edma_register_netdevice(struc
- 	 * NAPI add
- 	 */
- 	if (!edma_hw.napi_added) {
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0))
- 		netif_napi_add(netdev, &edma_hw.napi, edma_napi,
- 				NAPI_POLL_WEIGHT);
-+#else
-+		netif_napi_add(netdev, &edma_hw.napi, edma_napi);
-+#endif
- 		/*
- 		 * Register the interrupt handlers and enable interrupts
- 		 */
---- a/hal/dp_ops/syn_gmac_dp/syn_dp.c
-+++ b/hal/dp_ops/syn_gmac_dp/syn_dp.c
-@@ -189,8 +189,13 @@ static int syn_dp_if_init(struct nss_dp_
- 	}
- 
- 	if (!dev_info->napi_added) {
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0))
- 		netif_napi_add(netdev, &rx_info->napi_rx, syn_dp_napi_poll_rx, SYN_DP_NAPI_BUDGET_RX);
- 		netif_napi_add(netdev, &tx_info->napi_tx, syn_dp_napi_poll_tx, SYN_DP_NAPI_BUDGET_TX);
-+#else
-+		netif_napi_add_weight(netdev, &rx_info->napi_rx, syn_dp_napi_poll_rx, SYN_DP_NAPI_BUDGET_RX);
-+		netif_napi_add_weight(netdev, &tx_info->napi_tx, syn_dp_napi_poll_tx, SYN_DP_NAPI_BUDGET_TX);
-+#endif
- 
- 		/*
- 		 * Requesting irq. Set IRQ_DISABLE_UNLAZY flag, this flag
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
deleted file mode 100644
index e78ee6da2f..0000000000
--- a/package/kernel/qca-nss-dp/patches/0006-nss_dp_main-Use-a-phy-handle-property-to-connect-to-.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-From 5b05b1d7a2d2001d9711856608f61abaf7b9a9a5 Mon Sep 17 00:00:00 2001
-From: Alexandru Gagniuc <mr.nuke.me at gmail.com>
-Date: Fri, 23 Jun 2023 13:34:56 +0200
-Subject: [PATCH 6/8] nss_dp_main: Use a 'phy-handle' property to connect to
- the PHY
-
-The original method of connecting a PHY to the ethernet controller
-requires the "qcom,link-poll", and "qcom,phy-mdio-addr" devicetree
-properties. This is redundant. The PHY node already contains the MDIO
-address, and attaching a PHY implies "link-poll".
-
-Allow using a "phy-handle" property. Remove the following properties,
-as they are no longer used:
-    * "qcom,link-poll"
-    * "qcom,phy-mdio-addr"
-    * "mdio-bus"
-    * "qcom,forced-speed"
-    * "qcom,forced-duplex"
-
-Signed-off-by: Alexandru Gagniuc <mr.nuke.me at gmail.com>
-Signed-off-by: Robert Marko <robimarko at gmail.com>
----
- include/nss_dp_dev.h |  5 +--
- nss_dp_main.c        | 91 +++++++-------------------------------------
- 2 files changed, 14 insertions(+), 82 deletions(-)
-
---- a/include/nss_dp_dev.h
-+++ b/include/nss_dp_dev.h
-@@ -225,13 +225,10 @@ struct nss_dp_dev {
- 	unsigned long drv_flags;	/* Driver specific feature flags */
- 
- 	/* Phy related stuff */
-+	struct device_node *phy_node;	/* Phy device OF node */
- 	struct phy_device *phydev;	/* Phy device */
- 	struct mii_bus *miibus;		/* MII bus */
- 	uint32_t phy_mii_type;		/* RGMII/SGMII/QSGMII */
--	uint32_t phy_mdio_addr;		/* Mdio address */
--	bool link_poll;			/* Link polling enable? */
--	uint32_t forced_speed;		/* Forced speed? */
--	uint32_t forced_duplex;		/* Forced duplex? */
- 	uint32_t link_state;		/* Current link state */
- 	uint32_t pause;			/* Current flow control settings */
- 
---- a/nss_dp_main.c
-+++ b/nss_dp_main.c
-@@ -464,7 +464,7 @@ static int nss_dp_open(struct net_device
- 
- 	netif_start_queue(netdev);
- 
--	if (!dp_priv->link_poll) {
-+	if (!dp_priv->phydev) {
- 		/* 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");
-@@ -661,6 +661,12 @@ static int32_t nss_dp_of_get_pdata(struc
- 		return -EFAULT;
- 	}
- 
-+	dp_priv->phy_node = of_parse_phandle(np, "phy-handle", 0);
-+	if (!dp_priv->phy_node) {
-+		pr_err("%s: error parsing phy-handle\n", np->name);
-+		return -EFAULT;
-+	}
-+
- 	if (of_property_read_u32(np, "qcom,mactype", &hal_pdata->mactype)) {
- 		pr_err("%s: error reading mactype\n", np->name);
- 		return -EFAULT;
-@@ -681,18 +687,6 @@ static int32_t nss_dp_of_get_pdata(struc
- 		return -EFAULT;
- #endif
- 
--	dp_priv->link_poll = of_property_read_bool(np, "qcom,link-poll");
--	if (of_property_read_u32(np, "qcom,phy-mdio-addr",
--		&dp_priv->phy_mdio_addr) && dp_priv->link_poll) {
--		pr_err("%s: mdio addr required if link polling is enabled\n",
--				np->name);
--		return -EFAULT;
--	}
--
--	of_property_read_u32(np, "qcom,forced-speed", &dp_priv->forced_speed);
--	of_property_read_u32(np, "qcom,forced-duplex", &dp_priv->forced_duplex);
--
--
- #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))
-@@ -781,56 +775,6 @@ static int32_t nss_dp_of_get_pdata(struc
- 	return 0;
- }
- 
--/*
-- * nss_dp_mdio_attach()
-- */
--static struct mii_bus *nss_dp_mdio_attach(struct platform_device *pdev)
--{
--	struct device_node *mdio_node;
--	struct platform_device *mdio_plat;
--#if (LINUX_VERSION_CODE < KERNEL_VERSION(6,1,0))
--	struct ipq40xx_mdio_data *mdio_data;
--#endif
--
--	/*
--	 * Find mii_bus using "mdio-bus" handle.
--	 */
--	mdio_node = of_parse_phandle(pdev->dev.of_node, "mdio-bus", 0);
--	if (mdio_node) {
--		return of_mdio_find_bus(mdio_node);
--	}
--
--	mdio_node = of_find_compatible_node(NULL, NULL, "qcom,qca-mdio");
--	if (!mdio_node) {
--		mdio_node = of_find_compatible_node(NULL, NULL,
--							"qcom,ipq40xx-mdio");
--		if (!mdio_node) {
--			dev_err(&pdev->dev, "cannot find mdio node by phandle\n");
--			return NULL;
--		}
--	}
--
--	mdio_plat = of_find_device_by_node(mdio_node);
--	if (!mdio_plat) {
--		dev_err(&pdev->dev, "cannot find platform device from mdio node\n");
--		of_node_put(mdio_node);
--		return NULL;
--	}
--
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0))
--	return dev_get_drvdata(&mdio_plat->dev);
--#else
--	mdio_data = dev_get_drvdata(&mdio_plat->dev);
--	if (!mdio_data) {
--		dev_err(&pdev->dev, "cannot get mii bus reference from device data\n");
--		of_node_put(mdio_node);
--		return NULL;
--	}
--
--	return mdio_data->mii_bus;
--#endif
--}
--
- #ifdef CONFIG_NET_SWITCHDEV
- /*
-  * nss_dp_is_phy_dev()
-@@ -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;
--	uint8_t phy_id[MII_BUS_ID_SIZE + 3];
- #if defined(NSS_DP_PPE_SUPPORT)
- 	uint32_t vsi_id;
- 	fal_port_t port_id;
-@@ -968,22 +911,16 @@ static int32_t nss_dp_probe(struct platf
- 
- 	dp_priv->drv_flags |= NSS_DP_PRIV_FLAG(INIT_DONE);
- 
--	if (dp_priv->link_poll) {
--		dp_priv->miibus = nss_dp_mdio_attach(pdev);
--		if (!dp_priv->miibus) {
--			netdev_dbg(netdev, "failed to find miibus\n");
--			goto phy_setup_fail;
--		}
--		snprintf(phy_id, MII_BUS_ID_SIZE + 3, PHY_ID_FMT,
--				dp_priv->miibus->id, dp_priv->phy_mdio_addr);
-+	if (dp_priv->phy_node) {
- 
--		dp_priv->phydev = phy_connect(netdev, phy_id,
--				&nss_dp_adjust_link,
--				dp_priv->phy_mii_type);
--		if (IS_ERR(dp_priv->phydev)) {
--			netdev_dbg(netdev, "failed to connect to phy device\n");
--			goto phy_setup_fail;
--		}
-+		dp_priv->phydev = of_phy_connect(netdev, dp_priv->phy_node,
-+		        &nss_dp_adjust_link, 0,
-+		        dp_priv->phy_mii_type);
-+		if (!(dp_priv->phydev)) {
-+			netdev_err(netdev, "failed to connect to phy device\n");
-+ 			goto phy_setup_fail;
-+ 		}
-+ 		phy_attached_info(dp_priv->phydev);
- 	}
- 
- #if defined(NSS_DP_PPE_SUPPORT)
diff --git a/package/kernel/qca-nss-dp/patches/0007-nss-dp-edma-v1-use-NAPI-GRO-by-default.patch b/package/kernel/qca-nss-dp/patches/0007-nss-dp-edma-v1-use-NAPI-GRO-by-default.patch
deleted file mode 100644
index 6fbe75dc1c..0000000000
--- a/package/kernel/qca-nss-dp/patches/0007-nss-dp-edma-v1-use-NAPI-GRO-by-default.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From c2df713569fe3bb671d1444c7bf758681081053c Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko at gmail.com>
-Date: Thu, 23 Jun 2022 14:18:50 +0200
-Subject: [PATCH 7/8] nss-dp: edma-v1: use NAPI GRO by default
-
-Utilize napi_gro_receive instead of plain netif_receive_skb on EDMA v1.
-
-Usually it provides quite a lot of RX speed improvements, however in some
-cases it may lead to decreased performance as there is no checksum
-offloading implemented.
-
-In cases where reduced performance is experienced its possible to disable
-GRO by using ethtool.
-
-Signed-off-by: Robert Marko <robimarko at gmail.com>
----
- hal/dp_ops/edma_dp/edma_v1/edma_data_plane.c | 10 ++++++----
- hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c      |  8 ++++++--
- 2 files changed, 12 insertions(+), 6 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
-@@ -597,10 +597,12 @@ drop:
-  */
- static void edma_if_set_features(struct nss_dp_data_plane_ctx *dpc)
- {
--	/*
--	 * TODO - add flags to support HIGHMEM/cksum offload VLAN
--	 * the features are enabled.
--	 */
-+	struct net_device *netdev = dpc->dev;
-+
-+	netdev->features |= NETIF_F_GRO;
-+	netdev->hw_features |= NETIF_F_GRO;
-+	netdev->vlan_features |= NETIF_F_GRO;
-+	netdev->wanted_features |= NETIF_F_GRO;
- }
- 
- /* TODO - check if this is needed */
---- a/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c
-+++ b/hal/dp_ops/edma_dp/edma_v1/edma_tx_rx.c
-@@ -410,8 +410,12 @@ static uint32_t edma_clean_rx(struct edm
- 		if (unlikely(EDMA_RXPH_SERVICE_CODE_GET(rxph) ==
- 					NSS_PTP_EVENT_SERVICE_CODE))
- 			nss_phy_tstamp_rx_buf(ndev, skb);
--		else
--			netif_receive_skb(skb);
-+		else {
-+			if (likely(ndev->features & NETIF_F_GRO))
-+				napi_gro_receive(&ehw->napi, skb);
-+			else
-+				netif_receive_skb(skb);
-+		}
- 
- next_rx_desc:
- 		/*
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
deleted file mode 100644
index 9af770fcca..0000000000
--- a/package/kernel/qca-nss-dp/patches/0008-nss-dp-allow-setting-netdev-name-from-DTS.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 53b044f7a21d5cd65ada90a228910e6efbad00fa Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko at gmail.com>
-Date: Sun, 4 Dec 2022 18:41:36 +0100
-Subject: [PATCH 8/8] nss-dp: allow setting netdev name from DTS
-
-Allow reading the desired netdev name from DTS like DSA allows and then
-set it as the netdev name during registration.
-
-If label is not defined, simply fallback to kernel ethN enumeration.
-
-Signed-off-by: Robert Marko <robimarko at gmail.com>
----
- nss_dp_main.c | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
---- a/nss_dp_main.c
-+++ b/nss_dp_main.c
-@@ -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;
-+	const char *name = of_get_property(np, "label", NULL);
- 	int32_t ret = 0;
-+	int assign_type;
- #if defined(NSS_DP_PPE_SUPPORT)
- 	uint32_t vsi_id;
- 	fal_port_t port_id;
- #endif
- 
-+	if (name) {
-+		assign_type = NET_NAME_PREDICTABLE;
-+	} else {
-+		name = "eth%d";
-+		assign_type = NET_NAME_ENUM;
-+	}
-+
- 	/* TODO: See if we need to do some SoC level common init */
- 
--	netdev = alloc_etherdev_mqs(sizeof(struct nss_dp_dev),
--			NSS_DP_NETDEV_TX_QUEUE_NUM, NSS_DP_NETDEV_RX_QUEUE_NUM);
-+	netdev = alloc_netdev_mqs(sizeof(struct nss_dp_dev),
-+				  name, assign_type,
-+				  ether_setup,
-+				  NSS_DP_NETDEV_TX_QUEUE_NUM, NSS_DP_NETDEV_RX_QUEUE_NUM);
- 	if (!netdev) {
--		pr_info("alloc_etherdev() failed\n");
-+		dev_err(&pdev->dev, "alloc_netdev_mqs() failed\n");
- 		return -ENOMEM;
- 	}
- 
diff --git a/package/kernel/qca-nss-dp/patches/0009-nss-dp-switchdev-fix-FDB-roaming.patch b/package/kernel/qca-nss-dp/patches/0009-nss-dp-switchdev-fix-FDB-roaming.patch
deleted file mode 100644
index e0c85fb860..0000000000
--- a/package/kernel/qca-nss-dp/patches/0009-nss-dp-switchdev-fix-FDB-roaming.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 25ca3308edb67aa0c6c70b83edf0e22b8ae7533f Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko at gmail.com>
-Date: Thu, 29 Jun 2023 13:52:58 +0200
-Subject: [PATCH] nss-dp: switchdev: fix FDB roaming
-
-Try and solve the roaming issue by trying to replicate what NSS bridge
-module is doing, but by utilizing switchdev FDB notifiers instead of
-adding new notifiers to the bridge code.
-
-We register a new non-blocking switchdev notifier and simply wait for
-notification, and then process the SWITCHDEV_FDB_DEL_TO_DEVICE
-notifications.
-
-Those tell us that a certain FDB entry should be removed, then a VSI ID
-is fetched for the physical PPE port and using that VSI ID and the
-notification provided MAC adress existing FDB entry gets removed.
-
-Signed-off-by: Robert Marko <robimarko at gmail.com>
----
- nss_dp_switchdev.c | 73 +++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 72 insertions(+), 1 deletion(-)
-
---- a/nss_dp_switchdev.c
-+++ b/nss_dp_switchdev.c
-@@ -29,6 +29,10 @@
- #include "nss_dp_dev.h"
- #include "fal/fal_stp.h"
- #include "fal/fal_ctrlpkt.h"
-+#if defined(NSS_DP_PPE_SUPPORT)
-+#include "fal/fal_fdb.h"
-+#include "ref/ref_vsi.h"
-+#endif
- 
- #define NSS_DP_SWITCH_ID		0
- #define NSS_DP_SW_ETHTYPE_PID		0 /* PPE ethtype profile ID for slow protocols */
-@@ -534,8 +538,82 @@ static struct notifier_block *nss_dp_sw_
- 
- #else
- 
-+#if defined(NSS_DP_PPE_SUPPORT)
-+/*
-+ * nss_dp_switchdev_fdb_del_event
-+ *
-+ * Used for EDMA v1 to remove old MAC in order to preventing having
-+ * duplicate MAC entries in FDB thus and avoid roaming issues.
-+ */
-+
-+static int nss_dp_switchdev_fdb_del_event(struct net_device *netdev,
-+					  struct switchdev_notifier_fdb_info *fdb_info)
-+{
-+	struct nss_dp_dev *dp_priv = (struct nss_dp_dev *)netdev_priv(netdev);
-+	fal_fdb_entry_t entry;
-+	a_uint32_t vsi_id;
-+	sw_error_t rv;
-+
-+	netdev_dbg(netdev, "FDB DEL %pM port %d\n", fdb_info->addr, dp_priv->macid);
-+
-+	rv = ppe_port_vsi_get(NSS_DP_SWITCH_ID, dp_priv->macid, &vsi_id);
-+	if (rv) {
-+		netdev_err(netdev, "cannot get VSI ID for port %d\n", dp_priv->macid);
-+		return notifier_from_errno(rv);
-+	}
-+
-+	memset(&entry, 0, sizeof(entry));
-+	memcpy(&entry.addr, fdb_info->addr, ETH_ALEN);
-+	entry.fid = vsi_id;
-+
-+	rv = fal_fdb_entry_del_bymac(NSS_DP_SWITCH_ID, &entry);
-+	if (rv) {
-+		netdev_err(netdev, "FDB entry delete failed with MAC %pM and fid %d\n",
-+			   &entry.addr, entry.fid);
-+		return notifier_from_errno(rv);
-+	}
-+
-+	return notifier_from_errno(rv);
-+}
-+
-+/*
-+ * nss_dp_switchdev_event_nb
-+ *
-+ * Non blocking switchdev event for netdevice.
-+ * Used for EDMA v1 to remove old MAC and avoid roaming issues.
-+ */
-+static int nss_dp_switchdev_event_nb(struct notifier_block *unused,
-+		unsigned long event, void *ptr)
-+{
-+	struct net_device *dev = switchdev_notifier_info_to_dev(ptr);
-+
-+	/*
-+	 * Handle switchdev event only for physical devices
-+	 */
-+	if (!nss_dp_is_phy_dev(dev)) {
-+		return NOTIFY_DONE;
-+	}
-+
-+	switch (event) {
-+	case SWITCHDEV_FDB_DEL_TO_DEVICE:
-+		return nss_dp_switchdev_fdb_del_event(dev, ptr);
-+	default:
-+		netdev_dbg(dev, "Switchdev event %lu is not supported\n", event);
-+	}
-+
-+	return NOTIFY_DONE;
-+}
-+
-+static struct notifier_block nss_dp_switchdev_notifier_nb = {
-+	.notifier_call = nss_dp_switchdev_event_nb,
-+};
-+
-+static struct notifier_block *nss_dp_sw_ev_nb = &nss_dp_switchdev_notifier_nb;
-+
-+#else
- static struct notifier_block *nss_dp_sw_ev_nb;
- 
-+#endif
- /*
-  * nss_dp_bridge_attr_set()
-  *	Sets bridge attributes
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
deleted file mode 100644
index 654f6ef99f..0000000000
--- a/package/kernel/qca-nss-dp/patches/0012-01-syn-gmac-use-standard-DMA-api.patch
+++ /dev/null
@@ -1,234 +0,0 @@
-From 5ad8cf24897ff903112967a9662cb13ed4cbbf57 Mon Sep 17 00:00:00 2001
-From: Ziyang Huang <hzyitc at outlook.com>
-Date: Mon, 22 Apr 2024 21:47:58 +0800
-Subject: [PATCH] syn-gmac: use standard DMA api
-
-The SSDK uses several old DMA API calls based on raw assembly which have 
-been deprecated. So let's convert to and use the standard Linux DMA API 
-instead.
-
-Signed-off-by: Ziyang Huang <hzyitc at outlook.com>
-Signed-off-by: George Moussalem <george.moussalem at outlook.com>
----
- hal/dp_ops/syn_gmac_dp/syn_dp_cfg_rx.c | 14 ++++++--
- hal/dp_ops/syn_gmac_dp/syn_dp_cfg_tx.c |  2 ++
- hal/dp_ops/syn_gmac_dp/syn_dp_rx.c     | 47 +++++++++++++-------------
- hal/dp_ops/syn_gmac_dp/syn_dp_tx.c     | 23 ++++---------
- 4 files changed, 42 insertions(+), 44 deletions(-)
-
---- 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_queu
- {
- 	struct syn_dp_info_rx *rx_info = &dev_info->dp_info_rx;
- 	struct dma_desc_rx *first_desc = NULL;
-+	dma_addr_t dma_addr;
- 	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_queu
- 	/*
- 	 * Allocate cacheable descriptors for Rx
- 	 */
--	first_desc = kzalloc(sizeof(struct dma_desc_rx) * SYN_DP_RX_DESC_SIZE, GFP_KERNEL);
-+	first_desc = dma_alloc_coherent(rx_info->dev,
-+					sizeof(struct dma_desc_rx) * SYN_DP_RX_DESC_SIZE,
-+					&dma_addr, GFP_KERNEL);
- 	if (!first_desc) {
- 		netdev_dbg(netdev, "Error in Rx Descriptor Memory allocation in Ring mode\n");
- 		return -ENOMEM;
- 	}
- 
--	dev_info->rx_desc_dma_addr = (dma_addr_t)virt_to_phys(first_desc);
-+	dev_info->rx_desc_dma_addr = dma_addr;
- 	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
- 	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;
-+
-+		dma_unmap_single(rx_info->dev, rxdesc->buffer1,
-+				 rxdesc->length, DMA_FROM_DEVICE);
-+
- 		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
- 		}
- 	}
- 
--	kfree(rx_info->rx_desc);
-+	dma_free_coherent(rx_info->dev, (sizeof(struct dma_desc_rx) * SYN_DP_RX_DESC_SIZE),
-+			  rx_info->rx_desc, dev_info->rx_desc_dma_addr);
- 	rx_info->rx_desc = NULL;
- 	dev_info->rx_desc_dma_addr = (dma_addr_t)0;
- }
---- 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
- 		tx_skb_index = syn_dp_tx_inc_index(tx_skb_index, i);
- 		txdesc = tx_info->tx_desc;
- 
-+		dma_unmap_single(tx_info->dev, txdesc->buffer1, txdesc->length, DMA_TO_DEVICE);
-+
- 		skb = tx_info->tx_buf_pool[tx_skb_index].skb;
- 		if (unlikely(skb != NULL)) {
- 			dev_kfree_skb_any(skb);
---- 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_
-  */
- static inline void syn_dp_rx_inval_and_flush(struct syn_dp_info_rx *rx_info, uint32_t start, uint32_t end)
- {
--	/*
--	 * Batched flush and invalidation of the rx descriptors
--	 */
--	if (end > start) {
--		dmac_flush_range_no_dsb((void *)&rx_info->rx_desc[start], (void *)&rx_info->rx_desc[end] + sizeof(struct dma_desc_rx));
--	} else {
--		dmac_flush_range_no_dsb((void *)&rx_info->rx_desc[start], (void *)&rx_info->rx_desc[SYN_DP_RX_DESC_MAX_INDEX] + sizeof(struct dma_desc_rx));
--		dmac_flush_range_no_dsb((void *)&rx_info->rx_desc[0], (void *)&rx_info->rx_desc[end] + sizeof(struct dma_desc_rx));
--	}
--
- 	dsb(st);
- }
- 
-@@ -124,15 +114,19 @@ int syn_dp_rx_refill_page_mode(struct sy
- 			break;
- 		}
- 
-+		skb_fill_page_desc(skb, 0, pg, 0, PAGE_SIZE);
-+
- 		/*
- 		 * Get virtual address of allocated page.
- 		 */
- 		page_addr = page_address(pg);
--		dma_addr = (dma_addr_t)virt_to_phys(page_addr);
--
--		skb_fill_page_desc(skb, 0, pg, 0, PAGE_SIZE);
-+		dma_addr  = dma_map_page(rx_info->dev, pg, 0, PAGE_SIZE, DMA_FROM_DEVICE);
-+		if (unlikely(dma_mapping_error(rx_info->dev, dma_addr))) {
-+			dev_kfree_skb(skb);
-+			netdev_dbg(netdev, "DMA mapping failed for empty buffer\n");
-+			break;
-+		}
- 
--		dmac_inv_range_no_dsb(page_addr, (page_addr + PAGE_SIZE));
- 		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_
- 
- 		skb_reserve(skb, SYN_DP_SKB_HEADROOM + NET_IP_ALIGN);
- 
--		dma_addr = (dma_addr_t)virt_to_phys(skb->data);
--		dmac_inv_range_no_dsb((void *)skb->data, (void *)(skb->data + inval_len));
-+		dma_addr = dma_map_single(rx_info->dev, skb->data,
-+		                          inval_len,
-+		                          DMA_FROM_DEVICE);
-+		if (unlikely(dma_mapping_error(rx_info->dev, dma_addr))) {
-+			dev_kfree_skb(skb);
-+			netdev_dbg(netdev, "DMA mapping failed for empty buffer\n");
-+			break;
-+		}
-+
- 		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_
- 	 * this code is executing.
- 	 */
- 	end = syn_dp_rx_inc_index(rx_info->rx_idx, busy);
--	if (end > start) {
--		dmac_inv_range_no_dsb((void *)&rx_info->rx_desc[start], (void *)&rx_info->rx_desc[end] + sizeof(struct dma_desc_rx));
--	} else {
--		dmac_inv_range_no_dsb((void *)&rx_info->rx_desc[start], (void *)&rx_info->rx_desc[SYN_DP_RX_DESC_MAX_INDEX] + sizeof(struct dma_desc_rx));
--		dmac_inv_range_no_dsb((void *)&rx_info->rx_desc[0], (void *)&rx_info->rx_desc[end] + sizeof(struct dma_desc_rx));
--	}
- 
- 	dsb(st);
- 
-@@ -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);
--		dmac_inv_range((void *)rx_buf->map_addr_virt,
--			(void *)(((uint8_t *)rx_buf->map_addr_virt) + frame_length));
-+		if (likely(!rx_info->page_mode))
-+			dma_unmap_single(rx_info->dev, rx_desc->buffer1,
-+			                 rx_info->alloc_buf_len, DMA_FROM_DEVICE);
-+		else
-+			dma_unmap_page(rx_info->dev, rx_desc->buffer1,
-+			               PAGE_SIZE, DMA_FROM_DEVICE);
- 		prefetch((void *)rx_buf->map_addr_virt);
- 
- 		rx_next_idx = syn_dp_rx_inc_index(rx_idx, 1);
---- 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
- 		BUG_ON(!length);
- #endif
- 
--		dma_addr = (dma_addr_t)virt_to_phys(frag_addr);
--
--		dmac_clean_range_no_dsb(frag_addr, frag_addr + length);
-+		dma_addr = dma_map_single(tx_info->dev, frag_addr, length, DMA_TO_DEVICE);
- 
- 		*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_inf
- 	/*
- 	 * Flush the dma for non-paged skb data
- 	 */
--	dma_addr = (dma_addr_t)virt_to_phys(skb->data);
--	dmac_clean_range_no_dsb((void *)skb->data, (void *)(skb->data + length));
-+	dma_addr = dma_map_single(tx_info->dev, skb->data, length, DMA_TO_DEVICE);
- 
- 	total_len = length;
- 
-@@ -256,12 +253,7 @@ int syn_dp_tx_frag_list(struct syn_dp_in
- 		return NETDEV_TX_BUSY;
- 	}
- 
--	dma_addr = (dma_addr_t)virt_to_phys(skb->data);
--
--	/*
--	 * Flush the data area of the head skb
--	 */
--	dmac_clean_range_no_dsb((void *)skb->data, (void *)(skb->data + length));
-+	dma_addr = dma_map_single(tx_info->dev, skb->data, length, DMA_TO_DEVICE);
- 
- 	total_len = length;
- 
-@@ -290,9 +282,7 @@ int syn_dp_tx_frag_list(struct syn_dp_in
- 		BUG_ON(!length);
- #endif
- 
--		dma_addr = (dma_addr_t)virt_to_phys(iter_skb->data);
--
--		dmac_clean_range_no_dsb((void *)iter_skb->data, (void *)(iter_skb->data + length));
-+		dma_addr = dma_map_single(tx_info->dev, iter_skb->data, length, DMA_TO_DEVICE);
- 
- 		total_len += length;
- 
-@@ -445,6 +435,7 @@ int syn_dp_tx_complete(struct syn_dp_inf
- 			break;
- 		}
- 
-+		dma_unmap_single(tx_info->dev, desc->buffer1, desc->length, DMA_TO_DEVICE);
- 
- 		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_
- 		return NETDEV_TX_BUSY;
- 	}
- 
--	dma_addr = (dma_addr_t)virt_to_phys(skb->data);
--
--	dmac_clean_range_no_dsb((void *)skb->data, (void *)(skb->data + skb->len));
-+	dma_addr = dma_map_single(tx_info->dev, skb->data, skb->len, DMA_TO_DEVICE);
- 
- 	/*
- 	 * Queue packet to the GMAC rings
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
deleted file mode 100644
index 25fef48fce..0000000000
--- a/package/kernel/qca-nss-dp/patches/0012-02-ipq50xx-use-corrent-scm-function-to-write-tcsr.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ba430b1a512dc1972807a1dd5a8d31a78ac572ff Mon Sep 17 00:00:00 2001
-From: Ziyang Huang <hzyitc at outlook.com>
-Date: Mon, 22 Apr 2024 21:49:18 +0800
-Subject: [PATCH] ipq50xx: use corrent scm function to write tcsr
-
-QCA leverages its own API function to write to the TCSR register space, 
-not available upstream. As such, convert to the upstream qcom SCM IO 
-write function.
-
-Signed-off-by: Ziyang Huang <hzyitc at outlook.com>
-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(-)
-
---- a/hal/soc_ops/ipq50xx/nss_ipq50xx.c
-+++ b/hal/soc_ops/ipq50xx/nss_ipq50xx.c
-@@ -18,7 +18,7 @@
- 
- #include <linux/of.h>
- #include <linux/ioport.h>
--#include <linux/qcom_scm.h>
-+#include <linux/firmware/qcom/qcom_scm.h>
- #include "nss_dp_hal.h"
- 
- /*
-@@ -78,13 +78,8 @@ static void nss_dp_hal_tcsr_set(void)
- 	 * If TZ is not enabled, we can write to the register directly.
- 	 */
- 	if (qcom_scm_is_available()) {
--#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0))
--		err = qcom_scm_tcsr_reg_write((tcsr_base + TCSR_GMAC_AXI_CACHE_OVERRIDE_OFFSET),
-+		err = qcom_scm_io_writel((tcsr_base + TCSR_GMAC_AXI_CACHE_OVERRIDE_OFFSET),
- 						TCSR_GMAC_AXI_CACHE_OVERRIDE_VALUE);
--#else
--		err = qti_scm_tcsr_reg_write((tcsr_base + TCSR_GMAC_AXI_CACHE_OVERRIDE_OFFSET),
--						TCSR_GMAC_AXI_CACHE_OVERRIDE_VALUE);
--#endif
- 		if (err) {
- 			pr_err("%s: SCM TCSR write error: %d\n", __func__, err);
- 		}
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
deleted file mode 100644
index 37504b87a8..0000000000
--- a/package/kernel/qca-nss-dp/patches/0013-nss_dp_main-support-fixed-link.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 309a1a330ccaa103a7648e944d97a0032116b338 Mon Sep 17 00:00:00 2001
-From: Ziyang Huang <hzyitc at outlook.com>
-Date: Mon, 22 Apr 2024 21:50:39 +0800
-Subject: [PATCH] nss_dp_main: support fixed-link
-
-Add support for "fixed link" to support ethernet MACs which are not 
-connected to an MDIO managed PHY. For example, IPQ5018 has two internal 
-MACs, one connected to a GE PHY and the other connected to a Uniphy to 
-support connections to an external switch over a fixed link. As such, 
-check for a fixed link in absence of a phy-handle and return an error 
-when no phy-handle and fixed link is found.
-
-Signed-off-by: Ziyang Huang <hzyitc at outlook.com>
-Signed-off-by: George Moussalem <george.moussalem at outlook.com>
----
- nss_dp_main.c | 15 ++++++++++++---
- 1 file changed, 12 insertions(+), 3 deletions(-)
-
---- a/nss_dp_main.c
-+++ b/nss_dp_main.c
-@@ -662,11 +662,20 @@ static int32_t nss_dp_of_get_pdata(struc
- 	}
- 
- 	dp_priv->phy_node = of_parse_phandle(np, "phy-handle", 0);
--	if (!dp_priv->phy_node) {
--		pr_err("%s: error parsing phy-handle\n", np->name);
--		return -EFAULT;
-+	if(!dp_priv->phy_node) {
-+		if(of_phy_is_fixed_link(np)) {
-+			int ret = of_phy_register_fixed_link(np);
-+			if(ret < 0) {
-+				pr_err("%s: fail to register fixed-link: %d\n", np->name, ret);
-+				return -EFAULT;
-+			}
-+		}
-+		dp_priv->phy_node = of_node_get(np);
- 	}
- 
-+	if(!dp_priv->phy_node)
-+		pr_err("%s: no phy-handle or fixed-link found\n", np->name);
-+
- 	if (of_property_read_u32(np, "qcom,mactype", &hal_pdata->mactype)) {
- 		pr_err("%s: error reading mactype\n", np->name);
- 		return -EFAULT;




More information about the lede-commits mailing list