mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-24 21:02:35 +00:00
135 lines
5.0 KiB
Diff
135 lines
5.0 KiB
Diff
From 3931964b94389f164accc1945da8ee03cd59e7c6 Mon Sep 17 00:00:00 2001
|
|
From: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
|
|
Date: Tue, 1 Nov 2022 15:12:30 +0530
|
|
Subject: [PATCH] wifi: ath12k: Refactor SW cookie procedure
|
|
|
|
Since Rxdma is DMAC type, so no need to handle mac_id specific handling in the
|
|
replinish API. So removed. Also in the SW cookie, no need to reserve the mac_id
|
|
bits.
|
|
|
|
Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
|
|
---
|
|
drivers/net/wireless/ath/ath12k/dbring.c | 4 ++--
|
|
drivers/net/wireless/ath/ath12k/dp.c | 2 +-
|
|
drivers/net/wireless/ath/ath12k/dp.h | 6 ++++--
|
|
drivers/net/wireless/ath/ath12k/dp_rx.c | 15 ++++++---------
|
|
drivers/net/wireless/ath/ath12k/dp_rx.h | 2 +-
|
|
5 files changed, 14 insertions(+), 15 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath12k/dbring.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/dbring.c
|
|
@@ -51,8 +51,8 @@ static int ath12k_dbring_bufs_replenish(
|
|
|
|
buff->paddr = paddr;
|
|
|
|
- cookie = u32_encode_bits(ar->pdev_idx, DP_RXDMA_BUF_COOKIE_PDEV_ID) |
|
|
- u32_encode_bits(buf_id, DP_RXDMA_BUF_COOKIE_BUF_ID);
|
|
+ cookie = u32_encode_bits(ar->pdev_idx, DP_DIR_BUF_COOKIE_PDEV_ID) |
|
|
+ u32_encode_bits(buf_id, DP_DIR_BUF_COOKIE_BUF_ID);
|
|
|
|
ath12k_hal_rx_buf_addr_info_set(desc, paddr, cookie, 0);
|
|
|
|
--- a/drivers/net/wireless/ath/ath12k/dp.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/dp.c
|
|
@@ -1001,7 +1001,7 @@ int ath12k_dp_service_srng(struct ath12k
|
|
struct ath12k_dp *dp = &ab->dp;
|
|
struct dp_rxdma_ring *rx_ring = &dp->rx_refill_buf_ring;
|
|
|
|
- ath12k_dp_rx_bufs_replenish(ab, 0, rx_ring, 0,
|
|
+ ath12k_dp_rx_bufs_replenish(ab, rx_ring, 0,
|
|
ab->hw_params->hal_params->rx_buf_rbm,
|
|
true);
|
|
}
|
|
--- a/drivers/net/wireless/ath/ath12k/dp.h
|
|
+++ b/drivers/net/wireless/ath/ath12k/dp.h
|
|
@@ -182,8 +182,10 @@ struct ath12k_pdev_dp {
|
|
#define DP_RX_BUFFER_SIZE_LITE 1024
|
|
#define DP_RX_BUFFER_ALIGN_SIZE 128
|
|
|
|
-#define DP_RXDMA_BUF_COOKIE_BUF_ID GENMASK(17, 0)
|
|
-#define DP_RXDMA_BUF_COOKIE_PDEV_ID GENMASK(19, 18)
|
|
+#define DP_DIR_BUF_COOKIE_BUF_ID GENMASK(17, 0)
|
|
+#define DP_DIR_BUF_COOKIE_PDEV_ID GENMASK(19, 18)
|
|
+
|
|
+#define DP_RXDMA_BUF_COOKIE_BUF_ID GENMASK(19, 0)
|
|
|
|
#define DP_HW2SW_MACID(mac_id) ({ typeof(mac_id) x = (mac_id); x ? x - 1 : 0; })
|
|
#define DP_SW2HW_MACID(mac_id) ((mac_id) + 1)
|
|
--- a/drivers/net/wireless/ath/ath12k/dp_rx.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/dp_rx.c
|
|
@@ -283,7 +283,7 @@ static int ath12k_dp_purge_mon_ring(stru
|
|
}
|
|
|
|
/* Returns number of Rx buffers replenished */
|
|
-int ath12k_dp_rx_bufs_replenish(struct ath12k_base *ab, int mac_id,
|
|
+int ath12k_dp_rx_bufs_replenish(struct ath12k_base *ab,
|
|
struct dp_rxdma_ring *rx_ring,
|
|
int req_entries,
|
|
enum hal_rx_buf_return_buf_manager mgr,
|
|
@@ -364,9 +364,7 @@ int ath12k_dp_rx_bufs_replenish(struct a
|
|
spin_unlock_bh(&rx_ring->idr_lock);
|
|
if (buf_id < 0)
|
|
goto fail_idr_remove;
|
|
- cookie = u32_encode_bits(mac_id,
|
|
- DP_RXDMA_BUF_COOKIE_PDEV_ID) |
|
|
- u32_encode_bits(buf_id,
|
|
+ cookie = u32_encode_bits(buf_id,
|
|
DP_RXDMA_BUF_COOKIE_BUF_ID);
|
|
}
|
|
|
|
@@ -464,7 +462,7 @@ static int ath12k_dp_rxdma_ring_buf_setu
|
|
if ((ringtype == HAL_RXDMA_MONITOR_BUF) || (ringtype == HAL_TX_MONITOR_BUF))
|
|
ath12k_dp_mon_buf_replenish(ab, rx_ring, num_entries);
|
|
else
|
|
- ath12k_dp_rx_bufs_replenish(ab, 0, rx_ring, num_entries,
|
|
+ ath12k_dp_rx_bufs_replenish(ab, rx_ring, num_entries,
|
|
ab->hw_params->hal_params->rx_buf_rbm,
|
|
ringtype == HAL_RXDMA_BUF);
|
|
return 0;
|
|
@@ -3069,7 +3067,6 @@ int ath12k_dp_rx_process(struct ath12k_b
|
|
bool done = false;
|
|
int mac_id;
|
|
u32 *rx_desc;
|
|
- int i;
|
|
u64 desc_va;
|
|
struct ath12k_sta *ahsta = NULL;
|
|
struct ath12k_link_sta *arsta = NULL;
|
|
@@ -3194,7 +3191,7 @@ try_again:
|
|
goto exit;
|
|
|
|
/* TODO: Move to implicit BM? */
|
|
- ath12k_dp_rx_bufs_replenish(ab, i, rx_ring, num_buffs_reaped,
|
|
+ ath12k_dp_rx_bufs_replenish(ab, rx_ring, num_buffs_reaped,
|
|
ab->hw_params->hal_params->rx_buf_rbm, true);
|
|
|
|
ath12k_dp_rx_process_received_packets(ab, napi, &msdu_list,
|
|
@@ -3965,7 +3962,7 @@ exit:
|
|
|
|
rx_ring = &dp->rx_refill_buf_ring;
|
|
|
|
- ath12k_dp_rx_bufs_replenish(ab, 0, rx_ring, tot_n_bufs_reaped,
|
|
+ ath12k_dp_rx_bufs_replenish(ab, rx_ring, tot_n_bufs_reaped,
|
|
ab->hw_params->hal_params->rx_buf_rbm, true);
|
|
|
|
return tot_n_bufs_reaped;
|
|
@@ -4365,7 +4362,7 @@ int ath12k_dp_rx_process_wbm_err(struct
|
|
if (!total_num_buffs_reaped)
|
|
goto done;
|
|
|
|
- ath12k_dp_rx_bufs_replenish(ab, 0, rx_ring, num_buffs_reaped,
|
|
+ ath12k_dp_rx_bufs_replenish(ab, rx_ring, num_buffs_reaped,
|
|
ab->hw_params->hal_params->rx_buf_rbm, true);
|
|
|
|
rcu_read_lock();
|
|
--- a/drivers/net/wireless/ath/ath12k/dp_rx.h
|
|
+++ b/drivers/net/wireless/ath/ath12k/dp_rx.h
|
|
@@ -116,7 +116,7 @@ int ath12k_dp_rx_process_err(struct ath1
|
|
int ath12k_dp_rx_process(struct ath12k_base *ab, int mac_id,
|
|
struct napi_struct *napi,
|
|
int budget);
|
|
-int ath12k_dp_rx_bufs_replenish(struct ath12k_base *ab, int mac_id,
|
|
+int ath12k_dp_rx_bufs_replenish(struct ath12k_base *ab,
|
|
struct dp_rxdma_ring *rx_ring,
|
|
int req_entries,
|
|
enum hal_rx_buf_return_buf_manager mgr,
|