|
@@ -881,6 +881,14 @@ void policy_mgr_check_sta_ap_concurrent_ch_intf(void *data)
|
|
|
goto end;
|
|
|
}
|
|
|
|
|
|
+ policy_mgr_debug("wait if channel switch is already in progress");
|
|
|
+ status = qdf_wait_single_event(
|
|
|
+ &pm_ctx->channel_switch_complete_evt,
|
|
|
+ CHANNEL_SWITCH_COMPLETE_TIMEOUT);
|
|
|
+
|
|
|
+ if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
|
+ policy_mgr_err("wait for event failed, still continue with channel switch");
|
|
|
+ }
|
|
|
if (!pm_ctx->hdd_cbacks.wlan_hdd_get_channel_for_sap_restart) {
|
|
|
policy_mgr_err("SAP restart get channel callback in NULL");
|
|
|
goto end;
|
|
@@ -1181,6 +1189,52 @@ QDF_STATUS policy_mgr_set_connection_update(struct wlan_objmgr_psoc *psoc)
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
|
|
|
+QDF_STATUS policy_mgr_set_chan_switch_complete_evt(
|
|
|
+ struct wlan_objmgr_psoc *psoc)
|
|
|
+{
|
|
|
+ QDF_STATUS status;
|
|
|
+ struct policy_mgr_psoc_priv_obj *policy_mgr_context;
|
|
|
+
|
|
|
+ policy_mgr_context = policy_mgr_get_context(psoc);
|
|
|
+
|
|
|
+ if (!policy_mgr_context) {
|
|
|
+ policy_mgr_err("Invalid context");
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
+ }
|
|
|
+ status = qdf_event_set(
|
|
|
+ &policy_mgr_context->channel_switch_complete_evt);
|
|
|
+
|
|
|
+ if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
|
+ policy_mgr_err("set event failed");
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS policy_mgr_reset_chan_switch_complete_evt(
|
|
|
+ struct wlan_objmgr_psoc *psoc)
|
|
|
+{
|
|
|
+ QDF_STATUS status;
|
|
|
+ struct policy_mgr_psoc_priv_obj *policy_mgr_context;
|
|
|
+
|
|
|
+ policy_mgr_context = policy_mgr_get_context(psoc);
|
|
|
+
|
|
|
+ if (!policy_mgr_context) {
|
|
|
+ policy_mgr_err("Invalid context");
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
+ }
|
|
|
+ status = qdf_event_reset(
|
|
|
+ &policy_mgr_context->channel_switch_complete_evt);
|
|
|
+
|
|
|
+ if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
|
+ policy_mgr_err("reset event failed");
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
QDF_STATUS policy_mgr_set_opportunistic_update(struct wlan_objmgr_psoc *psoc)
|
|
|
{
|
|
|
QDF_STATUS status;
|