qcacmn: Check for system PM state before SW2TCL HP update
In SAP mode, intrabss forwarding can happen when system suspend is in progress. This could potentially result in a scenario where SW2TCL HP update goes through after WOW_ENABLE command is sent to FW. Fix is to check for system PM states and do an explicit system wakeup if tx packet gets enqueued to SW2TCL after wow is enabled. Flush the SW2TCL HP on system resume. Change-Id: I8dcd108b0dc1d703168f2f7a0ef0627e4dc0b103 CRs-Fixed: 3087727
Šī revīzija ir iekļauta:

revīziju iesūtīja
Madan Koyyalamudi

vecāks
e5a33cd5b6
revīzija
454c7361e1
@@ -1479,7 +1479,13 @@ dp_tx_ring_access_end_wrapper(struct dp_soc *soc,
|
||||
RTPM_ID_DW_TX_HW_ENQUEUE, true);
|
||||
switch (ret) {
|
||||
case 0:
|
||||
dp_tx_ring_access_end(soc, hal_ring_hdl, coalesce);
|
||||
if (hif_system_pm_state_check(soc->hif_handle)) {
|
||||
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);
|
||||
} else {
|
||||
dp_tx_ring_access_end(soc, hal_ring_hdl, coalesce);
|
||||
}
|
||||
hif_pm_runtime_put(soc->hif_handle,
|
||||
RTPM_ID_DW_TX_HW_ENQUEUE);
|
||||
break;
|
||||
@@ -1514,6 +1520,23 @@ dp_tx_ring_access_end_wrapper(struct dp_soc *soc,
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
#ifdef DP_POWER_SAVE
|
||||
void
|
||||
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)) {
|
||||
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);
|
||||
} else {
|
||||
dp_tx_ring_access_end(soc, hal_ring_hdl, coalesce);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline int dp_get_rtpm_tput_policy_requirement(struct dp_soc *soc)
|
||||
{
|
||||
return 0;
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user