qcacld-3.0: Avoid unnecessary AP Start evt

Event WLAN_IF_MGR_EV_AP_START_BSS delivery will trigger roam disable/
enable. That will involve lots of wmi command to set roaming parameters
to firmware. When the AP is "started" state, the
wlan_hdd_cfg80211_start_bss will be called to update AP (GO) IE and
wlansap_start_bss will be skipped. In this case, we don't
need to deliver WLAN_IF_MGR_EV_AP_START_BSS event.

Change-Id: I801fd7a5eaf7b97b2c74930c9e4088db83c86a09
CRs-Fixed: 2847224
This commit is contained in:
Liangwei Dong 2021-01-04 10:20:56 +08:00 • committed by snandini
commit 2c9648d470

View file

@ -5141,6 +5141,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
bool go_force_11n_for_11ac = 0;
bool bval = false;
bool enable_dfs_scan = true;
bool deliver_start_evt = true;
struct s_ext_cap *p_ext_cap;
enum reg_phymode reg_phy_mode, updated_phy_mode;
@ -5170,12 +5171,18 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
* module is enabled.
*/
#ifdef WLAN_FEATURE_INTERFACE_MGR
status = ucfg_if_mgr_deliver_event(adapter->vdev,
WLAN_IF_MGR_EV_AP_START_BSS,
NULL);
if (!QDF_IS_STATUS_SUCCESS(status)) {
hdd_err("start bss failed!!");
return -EINVAL;
if (test_bit(SOFTAP_BSS_STARTED, &adapter->event_flags))
deliver_start_evt = false;
if (deliver_start_evt) {
status = ucfg_if_mgr_deliver_event(
adapter->vdev,
WLAN_IF_MGR_EV_AP_START_BSS,
NULL);
if (!QDF_IS_STATUS_SUCCESS(status)) {
hdd_err("start bss failed!!");
return -EINVAL;
}
}
#else
if (policy_mgr_is_hw_mode_change_in_progress(hdd_ctx->psoc)) {
@ -5875,12 +5882,15 @@ free:
* module is enabled.
*/
#ifdef WLAN_FEATURE_INTERFACE_MGR
status = ucfg_if_mgr_deliver_event(adapter->vdev,
WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE,
NULL);
if (!QDF_IS_STATUS_SUCCESS(status)) {
hdd_err("start bss complete failed!!");
ret = -EINVAL;
if (deliver_start_evt) {
status = ucfg_if_mgr_deliver_event(
adapter->vdev,
WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE,
NULL);
if (!QDF_IS_STATUS_SUCCESS(status)) {
hdd_err("start bss complete failed!!");
ret = -EINVAL;
}
}
#else
/*