qcacld-3.0: Fix roam failed for SAP CSA concurrency
When vdev0 STA roamed to another channel, vdev1 SAP CSA for SCC when ROAM_SYNCH_IN_PROG, will disable roam, but no RSO stop to F/W, F/W RSO isn't disabled, but host vdev0 will enter RSO_STOPPED, host F/W RSO state out of sync. If vdev0 STA next roam sync come soon, it won't be handled for host RSO_STOPPED, neither roam sync complete nor disconnect will happen, F/W will asert after wait roam sync complete timeout. To fix it, Only do SAP CSA check after roam complete and RSO reenabled, can avoid host F/W RSO state out of sync issue. Change-Id: I77ccf30cac38f62c6ef8330c6da00364249b242e CRs-Fixed: 3076935
This commit is contained in:

committed by
Madan Koyyalamudi

szülő
95e17ac4b5
commit
23cb8430a3
@@ -28,6 +28,7 @@
|
||||
#include "wlan_p2p_ucfg_api.h"
|
||||
#include "wlan_tdls_ucfg_api.h"
|
||||
#include "wlan_tdls_api.h"
|
||||
#include <wlan_cm_api.h>
|
||||
|
||||
QDF_STATUS if_mgr_connect_start(struct wlan_objmgr_vdev *vdev,
|
||||
struct if_mgr_event_data *event_data)
|
||||
@@ -140,7 +141,8 @@ QDF_STATUS if_mgr_connect_complete(struct wlan_objmgr_vdev *vdev,
|
||||
|
||||
policy_mgr_check_n_start_opportunistic_timer(psoc);
|
||||
|
||||
policy_mgr_check_concurrent_intf_and_restart_sap(psoc);
|
||||
if (!wlan_cm_is_vdev_roaming(vdev))
|
||||
policy_mgr_check_concurrent_intf_and_restart_sap(psoc);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
@@ -927,8 +927,6 @@ QDF_STATUS cm_fw_roam_complete(struct cnx_mgr *cm_ctx, void *data)
|
||||
}
|
||||
policy_mgr_check_n_start_opportunistic_timer(psoc);
|
||||
|
||||
policy_mgr_check_concurrent_intf_and_restart_sap(psoc);
|
||||
|
||||
wlan_cm_handle_sta_sta_roaming_enablement(psoc, vdev_id);
|
||||
|
||||
if (roam_synch_data->auth_status == ROAM_AUTH_STATUS_AUTHENTICATED)
|
||||
@@ -951,6 +949,7 @@ QDF_STATUS cm_fw_roam_complete(struct cnx_mgr *cm_ctx, void *data)
|
||||
wlan_cm_roam_state_change(pdev, vdev_id,
|
||||
WLAN_ROAM_RSO_STOPPED,
|
||||
REASON_DISCONNECTED);
|
||||
policy_mgr_check_concurrent_intf_and_restart_sap(psoc);
|
||||
end:
|
||||
return status;
|
||||
}
|
||||
|
Reference in New Issue
Block a user