mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
* Add 88 new patches to series. tag: orange-pi-5.17-20220409-0454 * Fix the applicability of patches.megous to the v5.17.3 kernel * Fix series.conf. Disable the patch that is not being applied * Add support for sun50i-h6-orangepi-3-lts * Check the applicability in the series * Move to a patches.armbian folder * Bananapro: add AXP209 regulators * fix-gpio-kconfig remove if EXPERT to allow normal build * sunxi-5.17: Remove unused patches
158 lines
5.7 KiB
Diff
158 lines
5.7 KiB
Diff
From edc8094409f67b8112ead24778f1458eff6e6aa4 Mon Sep 17 00:00:00 2001
|
|
From: Ping-Ke Shih <pkshih@realtek.com>
|
|
Date: Mon, 7 Mar 2022 14:04:48 +0800
|
|
Subject: [PATCH 484/544] rtw89: pci: use a struct to describe all registers
|
|
address related to DMA channel
|
|
|
|
We have had a struct rtw89_pci_ch_dma_addr to describe register address,
|
|
so use it as regular. Since the addresses should be changed dynamically
|
|
according to operating mode, I don't change it to be constant.
|
|
|
|
These changes don't affect the logic, so I put them in this separated
|
|
patch.
|
|
|
|
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
|
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
|
Link: https://lore.kernel.org/r/20220307060457.56789-5-pkshih@realtek.com
|
|
---
|
|
drivers/net/wireless/realtek/rtw89/pci.c | 35 ++++++++++--------------
|
|
drivers/net/wireless/realtek/rtw89/pci.h | 6 +---
|
|
2 files changed, 15 insertions(+), 26 deletions(-)
|
|
|
|
diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c
|
|
index 38ad47126848..e79bfc335b44 100644
|
|
--- a/drivers/net/wireless/realtek/rtw89/pci.c
|
|
+++ b/drivers/net/wireless/realtek/rtw89/pci.c
|
|
@@ -62,7 +62,7 @@ static u32 rtw89_pci_txbd_recalc(struct rtw89_dev *rtwdev,
|
|
struct rtw89_pci_tx_ring *tx_ring)
|
|
{
|
|
struct rtw89_pci_dma_ring *bd_ring = &tx_ring->bd_ring;
|
|
- u32 addr_idx = bd_ring->addr_idx;
|
|
+ u32 addr_idx = bd_ring->addr.idx;
|
|
u32 cnt, idx;
|
|
|
|
idx = rtw89_read32(rtwdev, addr_idx);
|
|
@@ -121,7 +121,7 @@ static u32 rtw89_pci_rxbd_recalc(struct rtw89_dev *rtwdev,
|
|
struct rtw89_pci_rx_ring *rx_ring)
|
|
{
|
|
struct rtw89_pci_dma_ring *bd_ring = &rx_ring->bd_ring;
|
|
- u32 addr_idx = bd_ring->addr_idx;
|
|
+ u32 addr_idx = bd_ring->addr.idx;
|
|
u32 cnt, idx;
|
|
|
|
idx = rtw89_read32(rtwdev, addr_idx);
|
|
@@ -304,7 +304,7 @@ static void rtw89_pci_rxbd_deliver(struct rtw89_dev *rtwdev,
|
|
cnt -= rx_cnt;
|
|
}
|
|
|
|
- rtw89_write16(rtwdev, bd_ring->addr_idx, bd_ring->wp);
|
|
+ rtw89_write16(rtwdev, bd_ring->addr.idx, bd_ring->wp);
|
|
}
|
|
|
|
static int rtw89_pci_poll_rxq_dma(struct rtw89_dev *rtwdev,
|
|
@@ -555,7 +555,7 @@ static void rtw89_pci_release_tx(struct rtw89_dev *rtwdev,
|
|
cnt -= release_cnt;
|
|
}
|
|
|
|
- rtw89_write16(rtwdev, bd_ring->addr_idx, bd_ring->wp);
|
|
+ rtw89_write16(rtwdev, bd_ring->addr.idx, bd_ring->wp);
|
|
}
|
|
|
|
static int rtw89_pci_poll_rpq_dma(struct rtw89_dev *rtwdev,
|
|
@@ -598,7 +598,7 @@ static void rtw89_pci_isr_rxd_unavail(struct rtw89_dev *rtwdev,
|
|
rx_ring = &rtwpci->rx_rings[i];
|
|
bd_ring = &rx_ring->bd_ring;
|
|
|
|
- reg_idx = rtw89_read32(rtwdev, bd_ring->addr_idx);
|
|
+ reg_idx = rtw89_read32(rtwdev, bd_ring->addr.idx);
|
|
hw_idx = FIELD_GET(TXBD_HW_IDX_MASK, reg_idx);
|
|
host_idx = FIELD_GET(TXBD_HOST_IDX_MASK, reg_idx);
|
|
hw_idx_next = (hw_idx + 1) % bd_ring->len;
|
|
@@ -876,7 +876,7 @@ static void __rtw89_pci_tx_kick_off(struct rtw89_dev *rtwdev, struct rtw89_pci_t
|
|
struct rtw89_pci_dma_ring *bd_ring = &tx_ring->bd_ring;
|
|
u32 host_idx, addr;
|
|
|
|
- addr = bd_ring->addr_idx;
|
|
+ addr = bd_ring->addr.idx;
|
|
host_idx = bd_ring->wp;
|
|
rtw89_write16(rtwdev, addr, host_idx);
|
|
}
|
|
@@ -918,7 +918,7 @@ static void __pci_flush_txch(struct rtw89_dev *rtwdev, u8 txch, bool drop)
|
|
* just use for loop with udelay here.
|
|
*/
|
|
for (i = 0; i < 60; i++) {
|
|
- cur_idx = rtw89_read32(rtwdev, bd_ring->addr_idx);
|
|
+ cur_idx = rtw89_read32(rtwdev, bd_ring->addr.idx);
|
|
cur_rp = FIELD_GET(TXBD_HW_IDX_MASK, cur_idx);
|
|
if (cur_rp == bd_ring->wp)
|
|
return;
|
|
@@ -1179,9 +1179,9 @@ static void rtw89_pci_reset_trx_rings(struct rtw89_dev *rtwdev)
|
|
tx_ring = &rtwpci->tx_rings[i];
|
|
bd_ring = &tx_ring->bd_ring;
|
|
bd_ram = &bd_ram_table[i];
|
|
- addr_num = bd_ring->addr_num;
|
|
- addr_bdram = bd_ring->addr_bdram;
|
|
- addr_desa_l = bd_ring->addr_desa_l;
|
|
+ addr_num = bd_ring->addr.num;
|
|
+ addr_bdram = bd_ring->addr.bdram;
|
|
+ addr_desa_l = bd_ring->addr.desa_l;
|
|
bd_ring->wp = 0;
|
|
bd_ring->rp = 0;
|
|
|
|
@@ -1197,8 +1197,8 @@ static void rtw89_pci_reset_trx_rings(struct rtw89_dev *rtwdev)
|
|
for (i = 0; i < RTW89_RXCH_NUM; i++) {
|
|
rx_ring = &rtwpci->rx_rings[i];
|
|
bd_ring = &rx_ring->bd_ring;
|
|
- addr_num = bd_ring->addr_num;
|
|
- addr_desa_l = bd_ring->addr_desa_l;
|
|
+ addr_num = bd_ring->addr.num;
|
|
+ addr_desa_l = bd_ring->addr.desa_l;
|
|
bd_ring->wp = 0;
|
|
bd_ring->rp = 0;
|
|
rx_ring->diliver_skb = NULL;
|
|
@@ -2256,11 +2256,7 @@ static int rtw89_pci_alloc_tx_ring(struct rtw89_dev *rtwdev,
|
|
tx_ring->bd_ring.dma = dma;
|
|
tx_ring->bd_ring.len = len;
|
|
tx_ring->bd_ring.desc_size = desc_size;
|
|
- tx_ring->bd_ring.addr_num = txch_addr->num;
|
|
- tx_ring->bd_ring.addr_idx = txch_addr->idx;
|
|
- tx_ring->bd_ring.addr_bdram = txch_addr->bdram;
|
|
- tx_ring->bd_ring.addr_desa_l = txch_addr->desa_l;
|
|
- tx_ring->bd_ring.addr_desa_h = txch_addr->desa_h;
|
|
+ tx_ring->bd_ring.addr = *txch_addr;
|
|
tx_ring->bd_ring.wp = 0;
|
|
tx_ring->bd_ring.rp = 0;
|
|
tx_ring->txch = txch;
|
|
@@ -2337,10 +2333,7 @@ static int rtw89_pci_alloc_rx_ring(struct rtw89_dev *rtwdev,
|
|
rx_ring->bd_ring.dma = dma;
|
|
rx_ring->bd_ring.len = len;
|
|
rx_ring->bd_ring.desc_size = desc_size;
|
|
- rx_ring->bd_ring.addr_num = rxch_addr->num;
|
|
- rx_ring->bd_ring.addr_idx = rxch_addr->idx;
|
|
- rx_ring->bd_ring.addr_desa_l = rxch_addr->desa_l;
|
|
- rx_ring->bd_ring.addr_desa_h = rxch_addr->desa_h;
|
|
+ rx_ring->bd_ring.addr = *rxch_addr;
|
|
rx_ring->bd_ring.wp = 0;
|
|
rx_ring->bd_ring.rp = 0;
|
|
rx_ring->buf_sz = buf_sz;
|
|
diff --git a/drivers/net/wireless/realtek/rtw89/pci.h b/drivers/net/wireless/realtek/rtw89/pci.h
|
|
index b48306da566c..b84acd0d0582 100644
|
|
--- a/drivers/net/wireless/realtek/rtw89/pci.h
|
|
+++ b/drivers/net/wireless/realtek/rtw89/pci.h
|
|
@@ -537,11 +537,7 @@ struct rtw89_pci_dma_ring {
|
|
u8 desc_size;
|
|
dma_addr_t dma;
|
|
|
|
- u32 addr_num;
|
|
- u32 addr_idx;
|
|
- u32 addr_bdram;
|
|
- u32 addr_desa_l;
|
|
- u32 addr_desa_h;
|
|
+ struct rtw89_pci_ch_dma_addr addr;
|
|
|
|
u32 len;
|
|
u32 wp; /* host idx */
|
|
--
|
|
2.34.1
|
|
|