diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c index 51fd3476c0..36e6032215 100644 --- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c +++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c @@ -1582,7 +1582,8 @@ static QDF_STATUS policy_mgr_pcl_modification_for_ll_lt_sap( for (i = 0; i < *len; i++) { /* Remove passive/dfs/6G invalid channel for LL_LT_SAP */ - if (wlan_reg_is_passive_for_freq( + if (wlan_reg_is_24ghz_ch_freq(pcl_channels[i]) || + wlan_reg_is_passive_for_freq( pm_ctx->pdev, pcl_channels[i]) || wlan_reg_is_dfs_for_freq( diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c index 4d78adf01e..e63b2433fb 100644 --- a/core/hdd/src/wlan_hdd_hostapd.c +++ b/core/hdd/src/wlan_hdd_hostapd.c @@ -3931,9 +3931,15 @@ QDF_STATUS wlan_hdd_get_channel_for_sap_restart(struct wlan_objmgr_psoc *psoc, ch_params.ch_width = CH_WIDTH_MAX; intf_ch_freq = wlansap_get_chan_band_restrict(sap_context, &csa_reason); - if (intf_ch_freq) + if (intf_ch_freq && intf_ch_freq != sap_context->chan_freq) { goto sap_restart; - + } else if (!intf_ch_freq && + policy_mgr_is_vdev_ll_lt_sap(psoc, vdev_id)) { + schedule_work(&ap_adapter->sap_stop_bss_work); + wlansap_context_put(sap_context); + hdd_debug("stop ll_lt_sap, no channel found for csa"); + return QDF_STATUS_E_FAILURE; + } /* * If STA+SAP sessions are on DFS channel and STA+SAP SCC is * enabled on DFS channel then move the SAP out of DFS channel diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index 65e4f7f23a..c122417dfb 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -1105,7 +1105,8 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu goto free; } #ifdef QCA_HT_2040_COEX - if (mac_ctx->roam.configParam.obssEnabled) + if (mac_ctx->roam.configParam.obssEnabled && + !policy_mgr_is_vdev_ll_lt_sap(mac_ctx->psoc, vdev_id)) session->htSupportedChannelWidthSet = session->htCapability; else diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c index 9bf802923d..59dc69833d 100644 --- a/core/sap/src/sap_module.c +++ b/core/sap/src/sap_module.c @@ -1400,8 +1400,10 @@ wlansap_get_csa_chanwidth_from_phymode(struct sap_context *sap_context, } else { wlan_mlme_get_channel_bonding_5ghz(mac->psoc, &channel_bonding_mode); - if (WLAN_REG_IS_5GHZ_CH_FREQ(chan_freq) && - (!channel_bonding_mode)) + if (policy_mgr_is_vdev_ll_lt_sap(mac->psoc, + sap_context->vdev_id) || + (WLAN_REG_IS_5GHZ_CH_FREQ(chan_freq) && + !channel_bonding_mode)) ch_width = CH_WIDTH_20MHZ; else ch_width = wlansap_get_max_bw_by_phymode(sap_context); @@ -4044,11 +4046,11 @@ qdf_freq_t wlansap_get_chan_band_restrict(struct sap_context *sap_ctx, sap_ctx, NULL); } else { sap_debug("No need switch SAP/Go channel"); - return 0; + return sap_ctx->chan_freq; } } else { sap_debug("No need switch SAP/Go channel"); - return 0; + return sap_ctx->chan_freq; } cc_mode = sap_ctx->cc_switch_mode; phy_mode = sap_ctx->phyMode;