diff --git a/wmi/inc/wmi_unified_api.h b/wmi/inc/wmi_unified_api.h index c78183714b..2e1ec27fa6 100644 --- a/wmi/inc/wmi_unified_api.h +++ b/wmi/inc/wmi_unified_api.h @@ -171,6 +171,7 @@ struct wmi_unified_attach_params { osdev_t osdev; enum wmi_target_type target_type; bool use_cookie; + bool is_async_ep; struct wmi_rx_ops *rx_ops; struct wlan_objmgr_psoc *psoc; uint16_t max_commands; diff --git a/wmi/inc/wmi_unified_priv.h b/wmi/inc/wmi_unified_priv.h index c0b0bbf075..302c22b380 100644 --- a/wmi/inc/wmi_unified_priv.h +++ b/wmi/inc/wmi_unified_priv.h @@ -1939,6 +1939,7 @@ struct wmi_soc { void *scn_handle; /* handle to device */ qdf_atomic_t num_pdevs; enum wmi_target_type target_type; + bool is_async_ep; void *htc_handle; uint32_t event_id[WMI_UNIFIED_MAX_EVENT]; wmi_unified_event_handler event_handler[WMI_UNIFIED_MAX_EVENT]; diff --git a/wmi/src/wmi_unified.c b/wmi/src/wmi_unified.c index c8cbe5cf75..f6ab4595ac 100644 --- a/wmi/src/wmi_unified.c +++ b/wmi/src/wmi_unified.c @@ -2554,6 +2554,7 @@ void *wmi_unified_attach(void *scn_handle, } wmi_handle->soc = soc; wmi_handle->soc->soc_idx = param->soc_id; + wmi_handle->soc->is_async_ep = param->is_async_ep; wmi_handle->event_id = soc->event_id; wmi_handle->event_handler = soc->event_handler; wmi_handle->ctx = soc->ctx; @@ -2802,7 +2803,8 @@ static int wmi_connect_pdev_htc_service(struct wmi_soc *soc, return status; } - htc_set_async_ep(soc->htc_handle, response.Endpoint, 1); + if (soc->is_async_ep) + htc_set_async_ep(soc->htc_handle, response.Endpoint, true); soc->wmi_endpoint_id[pdev_idx] = response.Endpoint; soc->max_msg_len[pdev_idx] = response.MaxMsgLength;