mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 21:22:09 -04:00
qcacld-3.0: Remove CONFIG_MCL for set scan channel list command
Currently we have same function name/different implementation when set wmi scan channel list for WIN and MCL, the implementation for WIN side send_scan_chan_list_cmd_tlv looks more intuitive which will remain with minor change. So change MCL side wma_update_channel_list(), change its structure scan_chan_list_params pass to send_scan_chan_list_cmd_tlv() accordingly, set struct channel_param instead of setting WMI channel info directly. Change-Id: Ic414a00c09655b3c999182c7d84e93c179c36467 CRs-Fixed: 2363666
This commit is contained in:
parent
15920a9cc6
commit
e40a6ccdfd
1 changed files with 32 additions and 40 deletions
|
|
@ -119,84 +119,76 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle,
|
|||
{
|
||||
tp_wma_handle wma_handle = (tp_wma_handle) handle;
|
||||
QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
|
||||
int i;
|
||||
struct scan_chan_list_params scan_ch_param = {0};
|
||||
wmi_channel_param *tchan_info;
|
||||
int i, len;
|
||||
struct scan_chan_list_params *scan_ch_param;
|
||||
struct channel_param *chan_p;
|
||||
|
||||
scan_ch_param.chan_info = qdf_mem_malloc(sizeof(wmi_channel) *
|
||||
chan_list->numChan);
|
||||
if (!scan_ch_param.chan_info)
|
||||
len = sizeof(struct channel_param) * chan_list->numChan +
|
||||
offsetof(struct scan_chan_list_params, ch_param[0]);
|
||||
scan_ch_param = qdf_mem_malloc(len);
|
||||
if (!scan_ch_param)
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
|
||||
qdf_mem_zero(scan_ch_param.chan_info, sizeof(wmi_channel) *
|
||||
chan_list->numChan);
|
||||
qdf_mem_zero(scan_ch_param, len);
|
||||
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;
|
||||
chan_p = &scan_ch_param->ch_param[0];
|
||||
scan_ch_param->nallchans = chan_list->numChan;
|
||||
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);
|
||||
|
||||
for (i = 0; i < chan_list->numChan; ++i) {
|
||||
tchan_info->mhz =
|
||||
chan_p->mhz =
|
||||
cds_chan_to_freq(chan_list->chanParam[i].chanId);
|
||||
tchan_info->band_center_freq1 =
|
||||
tchan_info->mhz;
|
||||
tchan_info->band_center_freq2 = 0;
|
||||
chan_p->cfreq1 = chan_p->mhz;
|
||||
chan_p->cfreq2 = 0;
|
||||
wma_handle->saved_chan.channel_list[i] =
|
||||
chan_list->chanParam[i].chanId;
|
||||
|
||||
WMA_LOGD("chan[%d] = freq:%u chan:%d DFS:%d tx power:%d",
|
||||
i, tchan_info->mhz,
|
||||
i, chan_p->mhz,
|
||||
chan_list->chanParam[i].chanId,
|
||||
chan_list->chanParam[i].dfsSet,
|
||||
chan_list->chanParam[i].pwr);
|
||||
|
||||
if (chan_list->chanParam[i].dfsSet) {
|
||||
WMI_SET_CHANNEL_FLAG(tchan_info,
|
||||
WMI_CHAN_FLAG_PASSIVE);
|
||||
WMI_SET_CHANNEL_FLAG(tchan_info,
|
||||
WMI_CHAN_FLAG_DFS);
|
||||
chan_p->is_chan_passive = 1;
|
||||
chan_p->dfs_set = 1;
|
||||
}
|
||||
|
||||
if (tchan_info->mhz < WMA_2_4_GHZ_MAX_FREQ) {
|
||||
WMI_SET_CHANNEL_MODE(tchan_info, MODE_11G);
|
||||
if (chan_p->mhz < WMA_2_4_GHZ_MAX_FREQ) {
|
||||
chan_p->phy_mode = MODE_11G;
|
||||
if (chan_list->vht_en && chan_list->vht_24_en)
|
||||
WMI_SET_CHANNEL_FLAG(tchan_info,
|
||||
WMI_CHAN_FLAG_ALLOW_VHT);
|
||||
chan_p->allow_vht = 1;
|
||||
} else {
|
||||
WMI_SET_CHANNEL_MODE(tchan_info, MODE_11A);
|
||||
chan_p->phy_mode = MODE_11A;
|
||||
if (chan_list->vht_en)
|
||||
WMI_SET_CHANNEL_FLAG(tchan_info,
|
||||
WMI_CHAN_FLAG_ALLOW_VHT);
|
||||
chan_p->allow_vht = 1;
|
||||
}
|
||||
|
||||
if (chan_list->ht_en)
|
||||
WMI_SET_CHANNEL_FLAG(tchan_info,
|
||||
WMI_CHAN_FLAG_ALLOW_HT);
|
||||
chan_p->allow_ht = 1;
|
||||
|
||||
if (chan_list->chanParam[i].half_rate)
|
||||
WMI_SET_CHANNEL_FLAG(tchan_info,
|
||||
WMI_CHAN_FLAG_HALF_RATE);
|
||||
chan_p->half_rate = 1;
|
||||
else if (chan_list->chanParam[i].quarter_rate)
|
||||
WMI_SET_CHANNEL_FLAG(tchan_info,
|
||||
WMI_CHAN_FLAG_QUARTER_RATE);
|
||||
chan_p->quarter_rate = 1;
|
||||
|
||||
WMI_SET_CHANNEL_MAX_TX_POWER(tchan_info,
|
||||
chan_list->chanParam[i].pwr);
|
||||
/*TODO: Set WMI_SET_CHANNEL_MIN_POWER */
|
||||
/*TODO: Set WMI_SET_CHANNEL_ANTENNA_MAX */
|
||||
/*TODO: WMI_SET_CHANNEL_REG_CLASSID */
|
||||
chan_p->maxregpower = chan_list->chanParam[i].pwr;
|
||||
|
||||
WMI_SET_CHANNEL_REG_POWER(tchan_info,
|
||||
chan_list->chanParam[i].pwr);
|
||||
tchan_info++;
|
||||
chan_p++;
|
||||
}
|
||||
|
||||
qdf_status = wmi_unified_scan_chan_list_cmd_send(wma_handle->wmi_handle,
|
||||
&scan_ch_param);
|
||||
scan_ch_param);
|
||||
|
||||
if (QDF_IS_STATUS_ERROR(qdf_status))
|
||||
WMA_LOGE("Failed to send WMI_SCAN_CHAN_LIST_CMDID");
|
||||
|
||||
qdf_mem_free(scan_ch_param.chan_info);
|
||||
qdf_mem_free(scan_ch_param);
|
||||
|
||||
return qdf_status;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue