qcacld-3.0: Correct condition for DBS required
In the API policy_mgr_checkn_update_hw_mode_single_mac_mode the driver checks that if the bands are different, then go for DBS and single mac mode is not required. In the case of STA on 5ghz and SAP now coming up on 6ghz the bands would be different but the hw mode needed would be single MAC mode and not DBS, but according to the check mentioned above the driver would still return and the final hw mode would be stuck into DBS which would lead to unnecessary power consumption because of the second MAC being still swithched on having no vdev attached to it. Fix is to check whether DBS is required and avoid the condition mentioned above. Change-Id: I91d91894dde1a3b84c22f9de59c83a5f0b727315 CRs-Fixed: 2651178
Šī revīzija ir iekļauta:

revīziju iesūtīja
nshrivas

vecāks
588bc4b96e
revīzija
fd254c58e8
@@ -2529,18 +2529,23 @@ void policy_mgr_checkn_update_hw_mode_single_mac_mode(
|
||||
{
|
||||
uint8_t i;
|
||||
struct policy_mgr_psoc_priv_obj *pm_ctx;
|
||||
|
||||
bool dbs_required_2g;
|
||||
pm_ctx = policy_mgr_get_context(psoc);
|
||||
if (!pm_ctx) {
|
||||
policy_mgr_err("Invalid Context");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!policy_mgr_is_hw_dbs_capable(psoc))
|
||||
return;
|
||||
|
||||
if (QDF_TIMER_STATE_RUNNING == pm_ctx->dbs_opportunistic_timer.state)
|
||||
qdf_mc_timer_stop(&pm_ctx->dbs_opportunistic_timer);
|
||||
|
||||
if (policy_mgr_is_hw_dbs_required_for_band(psoc, HW_MODE_MAC_BAND_2G) &&
|
||||
(WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq))) {
|
||||
dbs_required_2g =
|
||||
policy_mgr_is_hw_dbs_required_for_band(psoc, HW_MODE_MAC_BAND_2G);
|
||||
|
||||
if (dbs_required_2g && WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq)) {
|
||||
policy_mgr_debug("DBS required for new connection");
|
||||
return;
|
||||
}
|
||||
@@ -2549,15 +2554,16 @@ void policy_mgr_checkn_update_hw_mode_single_mac_mode(
|
||||
for (i = 0; i < MAX_NUMBER_OF_CONC_CONNECTIONS; i++) {
|
||||
if (pm_conc_connection_list[i].in_use) {
|
||||
if (!WLAN_REG_IS_SAME_BAND_FREQS(
|
||||
ch_freq, pm_conc_connection_list[i].freq)) {
|
||||
ch_freq, pm_conc_connection_list[i].freq) &&
|
||||
(WLAN_REG_IS_24GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[i].freq) ||
|
||||
WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq))) {
|
||||
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
||||
policy_mgr_debug("DBS required");
|
||||
return;
|
||||
}
|
||||
if (policy_mgr_is_hw_dbs_required_for_band(
|
||||
psoc, HW_MODE_MAC_BAND_2G) &&
|
||||
WLAN_REG_IS_24GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[i].freq)) {
|
||||
if (dbs_required_2g && WLAN_REG_IS_24GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[i].freq)) {
|
||||
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
||||
policy_mgr_debug("DBS required");
|
||||
return;
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user