From 6287db07848717c28ed5b1fe4a00dcdc19d3ebe0 Mon Sep 17 00:00:00 2001 From: Aditya Sathish Date: Wed, 29 Jan 2020 16:12:20 +0530 Subject: [PATCH] qcacmn: Add 6GHz support for chan/freq/band usage in scan Currently the conversion APIs used doesn't take into account the overloading of channel numbers between 6GHz, 5GHz and 2.4GHz bands. Add support to obtain the correct channel number (and auxiliary information like band and frequency) through the new APIs that support all three bands. Change-Id: Ic2c8dfa4cc845d701dfd07df61c9ae1ee3d8bdef CRs-Fixed: 2610378 --- umac/scan/core/src/wlan_scan_bss_score.c | 14 ++++++-------- umac/scan/dispatcher/src/wlan_scan_ucfg_api.c | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/umac/scan/core/src/wlan_scan_bss_score.c b/umac/scan/core/src/wlan_scan_bss_score.c index f990d5a53202..4e1bf7b38a34 100644 --- a/umac/scan/core/src/wlan_scan_bss_score.c +++ b/umac/scan/core/src/wlan_scan_bss_score.c @@ -639,7 +639,7 @@ static int32_t scm_calculate_oce_wan_score( #ifdef WLAN_POLICY_MGR_ENABLE static uint32_t scm_get_sta_nss(struct wlan_objmgr_psoc *psoc, - uint8_t bss_channel, + qdf_freq_t bss_channel_freq, uint8_t vdev_nss_2g, uint8_t vdev_nss_5g) { @@ -650,22 +650,22 @@ static uint32_t scm_get_sta_nss(struct wlan_objmgr_psoc *psoc, */ if (policy_mgr_is_chnl_in_diff_band( - psoc, wlan_chan_to_freq(bss_channel)) && + psoc, bss_channel_freq) && policy_mgr_is_hw_dbs_capable(psoc) && !(policy_mgr_is_hw_dbs_2x2_capable(psoc))) return 1; - return (WLAN_REG_IS_24GHZ_CH(bss_channel) ? + return (WLAN_REG_IS_24GHZ_CH_FREQ(bss_channel_freq) ? vdev_nss_2g : vdev_nss_5g); } #else static uint32_t scm_get_sta_nss(struct wlan_objmgr_psoc *psoc, - uint8_t bss_channel, + qdf_freq_t bss_channel_freq, uint8_t vdev_nss_2g, uint8_t vdev_nss_5g) { - return (WLAN_REG_IS_24GHZ_CH(bss_channel) ? + return (WLAN_REG_IS_24GHZ_CH_FREQ(bss_channel_freq) ? vdev_nss_2g : vdev_nss_5g); } @@ -812,9 +812,7 @@ int scm_calculate_bss_score(struct wlan_objmgr_psoc *psoc, } sta_nss = scm_get_sta_nss(psoc, - wlan_reg_freq_to_chan( - pdev, - entry->channel.chan_freq), + entry->channel.chan_freq, score_config->vdev_nss_24g, score_config->vdev_nss_5g); diff --git a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c index 3c2b6b90818e..35059fde89c1 100644 --- a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c +++ b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c @@ -1380,7 +1380,7 @@ ucfg_scan_init_chanlist_params(struct scan_start_request *req, req->scan_req.chan_list.chan[idx].freq = (chan_list[idx] > WLAN_24_GHZ_BASE_FREQ) ? chan_list[idx] : - wlan_reg_chan_to_freq(pdev, chan_list[idx]); + wlan_reg_legacy_chan_to_freq(pdev, chan_list[idx]); if (phymode) req->scan_req.chan_list.chan[idx].phymode = phymode[idx];