diff options
| -rw-r--r-- | core/wma/src/wma_scan_roam.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index e99baba16613..f365b8b71a6c 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -730,6 +730,27 @@ error: return qdf_status; } +static inline wmi_host_channel_width +wma_map_phy_ch_bw_to_wmi_channel_width(enum phy_ch_width ch_width) +{ + switch (ch_width) { + case CH_WIDTH_20MHZ: + return WMI_HOST_CHAN_WIDTH_20; + case CH_WIDTH_40MHZ: + return WMI_HOST_CHAN_WIDTH_40; + case CH_WIDTH_80MHZ: + return WMI_HOST_CHAN_WIDTH_80; + case CH_WIDTH_160MHZ: + return WMI_HOST_CHAN_WIDTH_160; + case CH_WIDTH_5MHZ: + return WMI_HOST_CHAN_WIDTH_5; + case CH_WIDTH_10MHZ: + return WMI_HOST_CHAN_WIDTH_10; + default: + return WMI_HOST_CHAN_WIDTH_20; + } +} + /** * wma_update_channel_list() - update channel list * @handle: wma handle @@ -747,6 +768,7 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, int i; struct scan_chan_list_params scan_ch_param = {0}; wmi_channel_param *tchan_info; + struct ch_params_s ch_params = {0}; scan_ch_param.chan_info = qdf_mem_malloc(sizeof(wmi_channel) * chan_list->numChan); @@ -759,6 +781,7 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, WMA_LOGD("no of channels = %d", chan_list->numChan); tchan_info = scan_ch_param.chan_info; scan_ch_param.num_scan_chans = chan_list->numChan; + scan_ch_param.max_bw_support_present = true; wma_handle->saved_chan.num_channels = chan_list->numChan; WMA_LOGD("ht %d, vht %d, vht_24 %d", chan_list->ht_en, chan_list->vht_en, chan_list->vht_24_en); @@ -813,6 +836,14 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, WMI_SET_CHANNEL_REG_POWER(tchan_info, chan_list->chanParam[i].pwr); + ch_params.ch_width = CH_WIDTH_160MHZ; + cds_set_channel_params(chan_list->chanParam[i].chanId, 0, + &ch_params); + + WMI_SET_CHANNEL_MAX_BANDWIDTH(tchan_info, + wma_map_phy_ch_bw_to_wmi_channel_width( + ch_params.ch_width)); + tchan_info++; } |
