diff --git a/core/cds/src/cds_concurrency.c b/core/cds/src/cds_concurrency.c index aba4e5288001..4dd404ab6283 100644 --- a/core/cds/src/cds_concurrency.c +++ b/core/cds/src/cds_concurrency.c @@ -2011,13 +2011,15 @@ enum cds_conc_next_action cds_need_opportunistic_upgrade(void) } else if ((conc_connection_list[conn_index].mac == 1) && conc_connection_list[conn_index].in_use) { mac |= CDS_MAC1; - if (CDS_MAC0_AND_MAC1 == mac) { + if (CDS_MAC0_AND_MAC1 == mac || + wma_is_hw_dbs_2x2_capable()) { qdf_mutex_release(&cds_ctx->qdf_conc_list_lock); goto done; } } } - /* Let's request for single MAC mode */ + + cds_info("Request for single MAC mode"); upgrade = CDS_SINGLE_MAC; /* Is there any connection had an initial connection with 2x2 */ for (conn_index = 0; conn_index < MAX_NUMBER_OF_CONC_CONNECTIONS; diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index ba2b68f20b14..91612c92f80f 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -13134,9 +13134,11 @@ static int wlan_hdd_cfg80211_connect_start(hdd_adapter_t *pAdapter, pRoamProfile->ChannelInfo.numOfChannels = 0; if ((QDF_STA_MODE == pAdapter->device_mode) - && wma_is_current_hwmode_dbs()) { + && wma_is_current_hwmode_dbs() && + !wma_is_hw_dbs_2x2_capable()) { cds_get_channel_from_scan_result(pAdapter, pRoamProfile, &channel); + hdd_info("Move to single MAC mode(optimization) if applicable"); if (channel) cds_checkn_update_hw_mode_single_mac_mode (channel);