diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index fb4ce2f4cd72..98e3b6eead57 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -5025,15 +5025,23 @@ static bool csr_roam_select_bss(struct mac_context *mac_ctx, conc_channel = csr_get_concurrent_operation_channel( mac_ctx); sme_debug("csr Conc Channel: %d", conc_channel); - if ((conc_channel) && (conc_channel == - result->BssDescriptor.channelId)) { + + if (conc_channel) { + if ((conc_channel == + result->BssDescriptor.channelId) || + (policy_mgr_is_hw_dbs_capable(mac_ctx->psoc) + && !WLAN_REG_IS_SAME_BAND_CHANNELS( + conc_channel, + result->BssDescriptor.channelId))) { /* * make this 0 because we do not want the below * check to pass as we don't want to connect on * other channel */ - sme_debug("Conc chnl match: %d", conc_channel); - conc_channel = 0; + sme_debug("Conc chnl match: %d", + conc_channel); + conc_channel = 0; + } } }