qcacmn: Disable FISA update in suspend state
FISA update may come when target in suspend state, then UMAC force wake may return failure and lead to system timeout crash. Change is used to defer the update when resume happens. Change-Id: If033bed692dccf2d27e9c76825ab2063a3f56841 CRs-Fixed: 3324926
This commit is contained in:

committed by
Madan Koyyalamudi

parent
52590a8a70
commit
0dd0da3ac0
@@ -3408,6 +3408,14 @@ void dp_rx_fst_update_cmem_params(struct dp_soc *soc, uint16_t num_entries,
|
||||
|
||||
void
|
||||
dp_rx_fst_update_pm_suspend_status(struct dp_soc *soc, bool suspended);
|
||||
|
||||
/*
|
||||
* dp_rx_fst_requeue_wq() - Re-queue pending work queue tasks
|
||||
* @soc: DP SoC context
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void dp_rx_fst_requeue_wq(struct dp_soc *soc);
|
||||
#else
|
||||
static inline void
|
||||
dp_rx_fst_update_cmem_params(struct dp_soc *soc, uint16_t num_entries,
|
||||
@@ -3420,6 +3428,11 @@ dp_rx_fst_update_pm_suspend_status(struct dp_soc *soc, bool suspended)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void
|
||||
dp_rx_fst_requeue_wq(struct dp_soc *soc)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void dp_print_fisa_stats(struct dp_soc *soc)
|
||||
{
|
||||
}
|
||||
|
@@ -14965,6 +14965,7 @@ static QDF_STATUS dp_bus_suspend(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
|
||||
dp_monitor_reap_timer_suspend(soc);
|
||||
|
||||
dp_suspend_fse_cache_flush(soc);
|
||||
dp_rx_fst_update_pm_suspend_status(soc, true);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -14991,6 +14992,10 @@ static QDF_STATUS dp_bus_resume(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
|
||||
for (i = 0; i < soc->num_tcl_data_rings; i++)
|
||||
dp_flush_ring_hptp(soc, soc->tcl_data_ring[i].hal_srng);
|
||||
|
||||
dp_rx_fst_update_pm_suspend_status(soc, false);
|
||||
|
||||
dp_rx_fst_requeue_wq(soc);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
@@ -4358,6 +4358,8 @@ struct dp_fisa_reo_mismatch_stats {
|
||||
struct dp_fisa_stats {
|
||||
/* flow index invalid from RX HW TLV */
|
||||
uint32_t invalid_flow_index;
|
||||
/* workqueue deferred due to suspend */
|
||||
uint32_t update_deferred;
|
||||
struct dp_fisa_reo_mismatch_stats reo_mismatch;
|
||||
};
|
||||
|
||||
@@ -4484,7 +4486,8 @@ struct dp_rx_fst {
|
||||
qdf_event_t cmem_resp_event;
|
||||
bool flow_deletion_supported;
|
||||
bool fst_in_cmem;
|
||||
bool pm_suspended;
|
||||
qdf_atomic_t pm_suspended;
|
||||
bool fst_wq_defer;
|
||||
};
|
||||
|
||||
#endif /* WLAN_SUPPORT_RX_FISA */
|
||||
|
Reference in New Issue
Block a user