[][MAC80211][WED][Refactor patch for TXBM support over 32bits memory]
[Description]
Refactor patch for TXBM support over 32bits memory
[Release-log]
Change-Id: Ibb2369240655a22be496ee8b73233e658ba67ccd
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/8814769
diff --git a/autobuild_mac80211_release/target/linux/mediatek/patches-5.4/999-3021-mtk-wed-add-dma-mask-limitation-and-GFP_DMA32-for-bo.patch b/autobuild_mac80211_release/target/linux/mediatek/patches-5.4/999-3021-mtk-wed-add-dma-mask-limitation-and-GFP_DMA32-for-bo.patch
index 0d0ac4e..d3747af 100644
--- a/autobuild_mac80211_release/target/linux/mediatek/patches-5.4/999-3021-mtk-wed-add-dma-mask-limitation-and-GFP_DMA32-for-bo.patch
+++ b/autobuild_mac80211_release/target/linux/mediatek/patches-5.4/999-3021-mtk-wed-add-dma-mask-limitation-and-GFP_DMA32-for-bo.patch
@@ -1,21 +1,21 @@
-From a0aa9757876b525b24a16bd3cb48b5dac02a8945 Mon Sep 17 00:00:00 2001
+From f83c601c7b525c0adedcf1f5e8041acd350c7e2d Mon Sep 17 00:00:00 2001
From: Sujuan Chen <sujuan.chen@mediatek.com>
Date: Mon, 18 Sep 2023 13:23:56 +0800
-Subject: [PATCH 21/24] mtk: wed: add dma mask limitation and GFP_DMA32 for
- board >= 4GB dram
+Subject: [PATCH] mtk: wed: add dma mask limitation and GFP_DMA32 for board >=
+ 4GB dram
---
- drivers/net/ethernet/mediatek/mtk_wed.c | 8 ++++++--
- drivers/net/ethernet/mediatek/mtk_wed_mcu.c | 4 ++--
- drivers/net/ethernet/mediatek/mtk_wed_wo.c | 4 ++--
- drivers/net/ethernet/mediatek/mtk_wed_wo.h | 1 +
- 4 files changed, 11 insertions(+), 6 deletions(-)
+ drivers/net/ethernet/mediatek/mtk_wed.c | 16 +++++++++++-----
+ drivers/net/ethernet/mediatek/mtk_wed_mcu.c | 4 ++--
+ drivers/net/ethernet/mediatek/mtk_wed_wo.c | 4 ++--
+ drivers/net/ethernet/mediatek/mtk_wed_wo.h | 1 +
+ 4 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_wed.c b/drivers/net/ethernet/mediatek/mtk_wed.c
-index 7f14d43..b928ff6 100644
+index 5eeb3ed..094bc94 100644
--- a/drivers/net/ethernet/mediatek/mtk_wed.c
+++ b/drivers/net/ethernet/mediatek/mtk_wed.c
-@@ -638,7 +638,7 @@ mtk_wed_tx_buffer_alloc(struct mtk_wed_device *dev)
+@@ -625,7 +625,7 @@ mtk_wed_tx_buffer_alloc(struct mtk_wed_device *dev)
void *buf;
int s;
@@ -24,7 +24,34 @@
if (!page)
return -ENOMEM;
-@@ -762,7 +762,7 @@ mtk_wed_hwrro_buffer_alloc(struct mtk_wed_device *dev)
+@@ -646,10 +646,11 @@ mtk_wed_tx_buffer_alloc(struct mtk_wed_device *dev)
+
+ for (s = 0; s < MTK_WED_BUF_PER_PAGE; s++) {
+ struct mtk_wdma_desc *desc = desc_ptr;
++ u32 ctrl;
+
+ desc->buf0 = cpu_to_le32(buf_phys);
+ if (!mtk_wed_is_v3_or_greater(dev->hw)) {
+- u32 txd_size, ctrl;
++ u32 txd_size;
+
+ txd_size = dev->wlan.init_buf(buf, buf_phys,
+ token++);
+@@ -663,11 +664,11 @@ mtk_wed_tx_buffer_alloc(struct mtk_wed_device *dev)
+ ctrl |= MTK_WDMA_DESC_CTRL_LAST_SEG0 |
+ FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN1_V2,
+ MTK_WED_BUF_SIZE - txd_size);
+- desc->ctrl = cpu_to_le32(ctrl);
+ desc->info = 0;
+ } else {
+- desc->ctrl = cpu_to_le32(token << 16);
++ ctrl = token << 16 | TX_DMA_SDP1(buf_phys);
+ }
++ desc->ctrl = cpu_to_le32(ctrl);
+
+ desc_ptr += desc_size;
+ buf += MTK_WED_BUF_SIZE;
+@@ -749,7 +750,7 @@ mtk_wed_hwrro_buffer_alloc(struct mtk_wed_device *dev)
void *buf;
int s;
@@ -33,7 +60,15 @@
if (!page)
return -ENOMEM;
-@@ -2464,6 +2464,10 @@ mtk_wed_attach(struct mtk_wed_device *dev)
+@@ -769,6 +770,7 @@ mtk_wed_hwrro_buffer_alloc(struct mtk_wed_device *dev)
+ buf_phys = page_phys;
+ for (s = 0; s < MTK_WED_RX_PAGE_BUF_PER_PAGE; s++) {
+ desc->buf0 = cpu_to_le32(buf_phys);
++ desc->token = cpu_to_le32(RX_DMA_SDP1(buf_phys));
+ desc++;
+ buf += MTK_WED_PAGE_BUF_SIZE;
+ buf_phys += MTK_WED_PAGE_BUF_SIZE;
+@@ -2457,6 +2459,10 @@ mtk_wed_attach(struct mtk_wed_device *dev)
dev->version = hw->version;
dev->hw->pci_base = mtk_wed_get_pci_base(dev);