mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
ath11k: start a timer to update REO cmd ring
Start a timer to update REO HP if HP isn't updated to target. Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1 Signed-off-by: Carl Huang <cjhuang@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/1601544890-13450-6-git-send-email-kvalo@codeaurora.org
This commit is contained in:
parent
8ec5a6ab9c
commit
506e7e9bbf
|
|
@ -313,6 +313,8 @@ static void ath11k_dp_stop_shadow_timers(struct ath11k_base *ab)
|
|||
|
||||
for (i = 0; i < DP_TCL_NUM_RING_MAX; i++)
|
||||
ath11k_dp_shadow_stop_timer(ab, &ab->dp.tx_ring_timer[i]);
|
||||
|
||||
ath11k_dp_shadow_stop_timer(ab, &ab->dp.reo_cmd_timer);
|
||||
}
|
||||
|
||||
static void ath11k_dp_srng_common_cleanup(struct ath11k_base *ab)
|
||||
|
|
@ -425,6 +427,10 @@ static int ath11k_dp_srng_common_setup(struct ath11k_base *ab)
|
|||
srng = &ab->hal.srng_list[dp->reo_cmd_ring.ring_id];
|
||||
ath11k_hal_reo_init_cmd_ring(ab, srng);
|
||||
|
||||
ath11k_dp_shadow_init_timer(ab, &dp->reo_cmd_timer,
|
||||
ATH11K_SHADOW_CTRL_TIMER_INTERVAL,
|
||||
dp->reo_cmd_ring.ring_id);
|
||||
|
||||
ret = ath11k_dp_srng_setup(ab, &dp->reo_status_ring, HAL_REO_STATUS,
|
||||
0, 0, DP_REO_STATUS_RING_SIZE);
|
||||
if (ret) {
|
||||
|
|
|
|||
|
|
@ -207,6 +207,7 @@ struct ath11k_pdev_dp {
|
|||
#define DP_TX_DESC_ID_POOL_ID GENMASK(20, 19)
|
||||
|
||||
#define ATH11K_SHADOW_DP_TIMER_INTERVAL 20
|
||||
#define ATH11K_SHADOW_CTRL_TIMER_INTERVAL 10
|
||||
|
||||
struct ath11k_hp_update_timer {
|
||||
struct timer_list timer;
|
||||
|
|
@ -248,6 +249,7 @@ struct ath11k_dp {
|
|||
* - reo_cmd_cache_flush_count
|
||||
*/
|
||||
spinlock_t reo_cmd_lock;
|
||||
struct ath11k_hp_update_timer reo_cmd_timer;
|
||||
struct ath11k_hp_update_timer tx_ring_timer[DP_TCL_NUM_RING_MAX];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -256,6 +256,8 @@ int ath11k_hal_reo_cmd_send(struct ath11k_base *ab, struct hal_srng *srng,
|
|||
break;
|
||||
}
|
||||
|
||||
ath11k_dp_shadow_start_timer(ab, srng, &ab->dp.reo_cmd_timer);
|
||||
|
||||
out:
|
||||
ath11k_hal_srng_access_end(ab, srng);
|
||||
spin_unlock_bh(&srng->lock);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user