diff options
author | John Crispin <john@phrozen.org> | 2019-12-13 18:38:38 +0300 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2019-12-18 20:39:59 +0300 |
commit | d0998eb84ed3cc02c15f92b07223735ddbbe9b06 (patch) | |
tree | 986ca99cf9a78b0d8ff4779b85d05bbed9486f28 /drivers/net/wireless/ath/ath11k/hal_tx.h | |
parent | 8cfa7ef8127b00de1ce0275a85220c331fe9a4d0 (diff) | |
download | linux-d0998eb84ed3cc02c15f92b07223735ddbbe9b06.tar.xz |
ath11k: optimise ath11k_dp_tx_completion_handler
the current code does 4 memcpys for each completion frame.
1) duplicate the desc
2 + 3) inside kfifo insertion
4) kfifo remove
The code simply drops the kfifo and uses a trivial ring buffer. This
requires a single memcpy for insertion. There is no removal needed as
we can simply use the inserted data for processing. As the code runs
inside the NAPI context it is atomic and there is no need for most of
the locking.
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/ath/ath11k/hal_tx.h')
-rw-r--r-- | drivers/net/wireless/ath/ath11k/hal_tx.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath11k/hal_tx.h b/drivers/net/wireless/ath/ath11k/hal_tx.h index cf99e2b31f9f..5fe89b729a6e 100644 --- a/drivers/net/wireless/ath/ath11k/hal_tx.h +++ b/drivers/net/wireless/ath/ath11k/hal_tx.h @@ -61,11 +61,9 @@ struct hal_tx_status { void ath11k_hal_tx_cmd_desc_setup(struct ath11k_base *ab, void *cmd, struct hal_tx_info *ti); -void ath11k_hal_tx_desc_sync(void *tx_desc_cached, void *hw_desc); void ath11k_hal_tx_status_parse(struct ath11k_base *ab, struct hal_wbm_release_ring *desc, struct hal_tx_status *ts); -void ath11k_hal_tx_status_desc_sync(void *hw_desc, void *local_desc); void ath11k_hal_tx_set_dscp_tid_map(struct ath11k_base *ab, int id); int ath11k_hal_reo_cmd_send(struct ath11k_base *ab, struct hal_srng *srng, enum hal_reo_cmd_type type, |