qcacmn: Stop wmi sequence check during SOC stop
Skip wmi sequence check during SOC stop and enable after initializing wmi handle. It is required to skip sequence check during soc stop as the endpoint flush is preceding CE flush. CRs-Fixed: 2813341 Change-Id: Ieb821483e9786471d033773dc2365ab456345f83
This commit is contained in:

committed by
snandini

parent
9f9dfdc2b4
commit
0d9dc04d48
@@ -590,6 +590,14 @@ wmi_is_blocked(wmi_unified_t wmi_handle);
|
||||
void
|
||||
wmi_flush_endpoint(wmi_unified_t wmi_handle);
|
||||
|
||||
/**
|
||||
* API to stop wmi sequence check
|
||||
*
|
||||
* @param wmi_handle : handle to WMI.
|
||||
*/
|
||||
void
|
||||
wmi_interface_sequence_stop(wmi_unified_t wmi_handle);
|
||||
|
||||
/**
|
||||
* wmi_pdev_id_conversion_enable() - API to enable pdev_id and phy_id
|
||||
* conversion in WMI. By default pdev_id and
|
||||
|
@@ -2549,6 +2549,8 @@ struct wmi_unified {
|
||||
uint32_t *cmd_phy_id_map;
|
||||
uint32_t *evt_phy_id_map;
|
||||
#ifdef WMI_INTERFACE_SEQUENCE_CHECK
|
||||
/* wmi sequence stop */
|
||||
bool wmi_sequence_stop;
|
||||
/* wmi next transmit sequence number */
|
||||
uint32_t wmi_sequence;
|
||||
/* wmi completion expected sequence number */
|
||||
|
@@ -1809,6 +1809,7 @@ static inline void wmi_interface_sequence_reset(struct wmi_unified *wmi_handle)
|
||||
{
|
||||
wmi_handle->wmi_sequence = 0;
|
||||
wmi_handle->wmi_exp_sequence = 0;
|
||||
wmi_handle->wmi_sequence_stop = false;
|
||||
}
|
||||
|
||||
static inline void wmi_interface_sequence_init(struct wmi_unified *wmi_handle)
|
||||
@@ -1822,6 +1823,11 @@ static inline void wmi_interface_sequence_deinit(struct wmi_unified *wmi_handle)
|
||||
qdf_spinlock_destroy(&wmi_handle->wmi_seq_lock);
|
||||
}
|
||||
|
||||
void wmi_interface_sequence_stop(struct wmi_unified *wmi_handle)
|
||||
{
|
||||
wmi_handle->wmi_sequence_stop = true;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS wmi_htc_send_pkt(struct wmi_unified *wmi_handle,
|
||||
HTC_PACKET *pkt,
|
||||
const char *func, uint32_t line)
|
||||
@@ -1852,6 +1858,10 @@ static inline QDF_STATUS wmi_htc_send_pkt(struct wmi_unified *wmi_handle,
|
||||
static inline void wmi_interface_sequence_check(struct wmi_unified *wmi_handle,
|
||||
wmi_buf_t buf)
|
||||
{
|
||||
/* Skip sequence check when wmi sequence stop is set */
|
||||
if (wmi_handle->wmi_sequence_stop)
|
||||
return;
|
||||
|
||||
qdf_spin_lock_bh(&wmi_handle->wmi_seq_lock);
|
||||
/* Match the completion sequence and expected sequence number */
|
||||
if (qdf_nbuf_get_mark(buf) != wmi_handle->wmi_exp_sequence) {
|
||||
@@ -1884,6 +1894,10 @@ static inline void wmi_interface_sequence_deinit(struct wmi_unified *wmi_handle)
|
||||
{
|
||||
}
|
||||
|
||||
void wmi_interface_sequence_stop(struct wmi_unified *wmi_handle)
|
||||
{
|
||||
}
|
||||
|
||||
static inline QDF_STATUS wmi_htc_send_pkt(struct wmi_unified *wmi_handle,
|
||||
HTC_PACKET *pkt,
|
||||
const char *func, uint32_t line)
|
||||
|
Reference in New Issue
Block a user