qcacmn: Pause Tx HW enqueue when bus suspend in progress

In SAP due to intrabss forwarding, Tx ring update is going through
when WOW enable command has been sent to FW. This results in crash.
To fix this, do not update HP when apps suspend is in progress.

Change-Id: Id4176224563bdd759828397fa1cd23de1598192e
CRs-Fixed: 3294407
This commit is contained in:
Ananya Gupta
2022-09-20 12:20:07 +05:30
committed by Madan Koyyalamudi
parent aaa7ef6872
commit a4b2a03200
5 changed files with 46 additions and 2 deletions

View File

@@ -1631,7 +1631,8 @@ dp_tx_ring_access_end_wrapper(struct dp_soc *soc,
ret = hif_rtpm_get(HIF_RTPM_GET_ASYNC, HIF_RTPM_ID_DP);
if (QDF_IS_STATUS_SUCCESS(ret)) {
if (hif_system_pm_state_check(soc->hif_handle)) {
if (hif_system_pm_state_check(soc->hif_handle) ||
qdf_unlikely(soc->is_tx_pause)) {
dp_tx_hal_ring_access_end_reap(soc, hal_ring_hdl);
hal_srng_set_event(hal_ring_hdl, HAL_SRNG_FLUSH_EVENT);
hal_srng_inc_flush_cnt(hal_ring_hdl);
@@ -1656,7 +1657,8 @@ dp_tx_ring_access_end_wrapper(struct dp_soc *soc,
hal_ring_handle_t hal_ring_hdl,
int coalesce)
{
if (hif_system_pm_state_check(soc->hif_handle)) {
if (hif_system_pm_state_check(soc->hif_handle) ||
qdf_unlikely(soc->is_tx_pause)) {
dp_tx_hal_ring_access_end_reap(soc, hal_ring_hdl);
hal_srng_set_event(hal_ring_hdl, HAL_SRNG_FLUSH_EVENT);
hal_srng_inc_flush_cnt(hal_ring_hdl);