|
@@ -88,7 +88,7 @@ static int wlan_hdd_gen_wlan_status_pack(struct wlan_status_data *data,
|
|
|
uint32_t chan_id;
|
|
|
uint32_t *chan_freq_list, chan_freq_len;
|
|
|
struct svc_channel_info *chan_info;
|
|
|
- bool lpass_support;
|
|
|
+ bool lpass_support, wls_6ghz_capable = false;
|
|
|
QDF_STATUS status;
|
|
|
|
|
|
if (!data) {
|
|
@@ -116,7 +116,7 @@ static int wlan_hdd_gen_wlan_status_pack(struct wlan_status_data *data,
|
|
|
hdd_err("Failed to get LPASS support config");
|
|
|
return -EIO;
|
|
|
}
|
|
|
-
|
|
|
+ ucfg_mlme_get_wls_6ghz_cap(hdd_ctx->psoc, &wls_6ghz_capable);
|
|
|
if (hdd_ctx->lpss_support && lpass_support)
|
|
|
data->lpss_support = 1;
|
|
|
else
|
|
@@ -130,17 +130,24 @@ static int wlan_hdd_gen_wlan_status_pack(struct wlan_status_data *data,
|
|
|
chan_freq_len = WLAN_SVC_MAX_NUM_CHAN;
|
|
|
sme_get_cfg_valid_channels(chan_freq_list, &chan_freq_len);
|
|
|
|
|
|
- data->numChannels = chan_freq_len;
|
|
|
+ data->numChannels = 0;
|
|
|
+ for (i = 0; i < chan_freq_len; i++) {
|
|
|
+ if (!wls_6ghz_capable &&
|
|
|
+ wlan_reg_is_6ghz_chan_freq(chan_freq_list[i]))
|
|
|
+ continue;
|
|
|
+
|
|
|
+ chan_id = wlan_reg_freq_to_chan(hdd_ctx->pdev,
|
|
|
+ chan_freq_list[i]);
|
|
|
+ if (!chan_id)
|
|
|
+ continue;
|
|
|
|
|
|
- for (i = 0; i < data->numChannels; i++) {
|
|
|
- chan_info = &data->channel_info[i];
|
|
|
- data->channel_list[i] =
|
|
|
- wlan_reg_freq_to_chan(hdd_ctx->pdev, chan_freq_list[i]);
|
|
|
- chan_id = data->channel_list[i];
|
|
|
+ chan_info = &data->channel_info[data->numChannels];
|
|
|
+ data->channel_list[data->numChannels] = chan_id;
|
|
|
chan_info->chan_id = chan_id;
|
|
|
wlan_hdd_get_channel_info(hdd_ctx,
|
|
|
chan_info,
|
|
|
chan_freq_list[i]);
|
|
|
+ data->numChannels++;
|
|
|
}
|
|
|
|
|
|
qdf_mem_free(chan_freq_list);
|