diff --git a/core/mac/src/pe/lim/lim_send_messages.c b/core/mac/src/pe/lim/lim_send_messages.c index 9bf69559e3f2..9cb0ff04480d 100644 --- a/core/mac/src/pe/lim/lim_send_messages.c +++ b/core/mac/src/pe/lim/lim_send_messages.c @@ -131,9 +131,11 @@ QDF_STATUS lim_send_switch_chnl_params(struct mac_context *mac, pChnlParams = qdf_mem_malloc(sizeof(tSwitchChannelParams)); if (!pChnlParams) return QDF_STATUS_E_NOMEM; - pChnlParams->channelNumber = chnlNumber; - pChnlParams->ch_center_freq_seg0 = ch_center_freq_seg0; - pChnlParams->ch_center_freq_seg1 = ch_center_freq_seg1; + pChnlParams->ch_freq = wlan_reg_chan_to_freq(mac->pdev, chnlNumber); + pChnlParams->ch_center_freq_seg0 = + wlan_reg_chan_to_freq(mac->pdev, ch_center_freq_seg0); + pChnlParams->ch_center_freq_seg1 = + wlan_reg_chan_to_freq(mac->pdev, ch_center_freq_seg1); pChnlParams->ch_width = ch_width; qdf_mem_copy(pChnlParams->selfStaMacAddr, pe_session->self_mac_addr, sizeof(tSirMacAddr)); @@ -189,9 +191,9 @@ QDF_STATUS lim_send_switch_chnl_params(struct mac_context *mac, msgQ.reserved = 0; msgQ.bodyptr = pChnlParams; msgQ.bodyval = 0; - pe_debug("Sending CH_SWITCH_REQ, ch_width %d, ch_num %d, maxTxPower %d", + pe_debug("Sending CH_SWITCH_REQ, ch_width %d, ch_freq %d, maxTxPower %d", pChnlParams->ch_width, - pChnlParams->channelNumber, pChnlParams->maxTxPower); + pChnlParams->ch_freq, pChnlParams->maxTxPower); MTRACE(mac_trace_msg_tx(mac, peSessionId, msgQ.type)); if (QDF_STATUS_SUCCESS != wma_post_ctrl_msg(mac, &msgQ)) { qdf_mem_free(pChnlParams); diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c index bd1c082733c5..1f8cf06853ec 100644 --- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c @@ -1944,12 +1944,12 @@ lim_send_sme_ap_channel_switch_resp(struct mac_context *mac, if (!pSmeSwithChnlParams) return; - channelId = wlan_reg_freq_to_chan(mac->pdev, pe_session->curr_op_freq); - pSmeSwithChnlParams->channelNumber = channelId; + pSmeSwithChnlParams->ch_freq = pe_session->curr_op_freq; pSmeSwithChnlParams->status = rsp->status; - ch_width = pSmeSwithChnlParams->ch_width; - ch_center_freq_seg1 = pSmeSwithChnlParams->ch_center_freq_seg1; + + ch_width = pe_session->ch_width; + ch_center_freq_seg1 = pe_session->ch_center_freq_seg1; /* * Pass the sme sessionID to SME instead diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 2cf860897d44..1d67b03d8034 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -9108,7 +9108,7 @@ static QDF_STATUS sme_process_channel_change_resp(struct mac_context *mac, if (msg_type == eWNI_SME_CHANNEL_CHANGE_RSP) { roam_info->channelChangeRespEvent->sessionId = SessionId; roam_info->channelChangeRespEvent->newChannelNumber = - pChnlParams->channelNumber; + wlan_reg_freq_to_chan(mac->pdev, pChnlParams->ch_freq); if (pChnlParams->status == QDF_STATUS_SUCCESS) { QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, @@ -14240,7 +14240,7 @@ QDF_STATUS sme_fast_reassoc(mac_handle_t mac_handle, return QDF_STATUS_E_FAULT; } - fastreassoc->channel = channel; + fastreassoc->ch_freq = wlan_reg_chan_to_freq(mac_ctx->pdev, channel); if (QDF_STATUS_SUCCESS != status) { sme_warn("sme_get_beacon_frm failed"); qdf_mem_free(fastreassoc->frame_buf); diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h index 223aecae0362..b444c01c52b6 100644 --- a/core/wma/inc/wma.h +++ b/core/wma/inc/wma.h @@ -727,7 +727,7 @@ struct roam_synch_frame_ind { * @in_bmps: Whether bmps for this interface has been enabled * @vdev_set_key_wakelock: wakelock to protect vdev set key op with firmware * @vdev_set_key_runtime_wakelock: runtime pm wakelock for set key - * @channel: channel + * @ch_freq: channel frequency * @roam_offload_enabled: is roam offload enable/disable * @roam_scan_stats_req: cached roam scan stats request * @@ -793,7 +793,7 @@ struct wma_txrx_node { struct roam_synch_frame_ind roam_synch_frame_ind; bool is_waiting_for_key; bool roam_offload_enabled; - uint8_t channel; + uint32_t ch_freq; struct sir_roam_scan_stats *roam_scan_stats_req; }; @@ -842,13 +842,13 @@ struct wma_ini_config { }; /** - * struct wmi_valid_channels - Channel details part of WMI_SCAN_CHAN_LIST_CMDID + * struct wma_valid_channels - Channel details part of WMI_SCAN_CHAN_LIST_CMDID * @num_channels: Number of channels - * @channel_list: Channel list + * @ch_freq_list: Channel Frequency list */ struct wma_valid_channels { uint8_t num_channels; - uint8_t channel_list[MAX_NUM_CHAN]; + uint32_t ch_freq_list[MAX_NUM_CHAN]; }; #ifdef FEATURE_WLM_STATS @@ -1556,7 +1556,7 @@ enum uapsd_up { * struct wma_roam_invoke_cmd - roam invoke command * @vdev_id: vdev id * @bssid: mac address - * @channel: channel + * @ch_freq: channel frequency * @frame_len: frame length, includs mac header, fixed params and ies * @frame_buf: buffer contaning probe response or beacon * @is_same_bssid: flag to indicate if roaming is requested for same bssid @@ -1565,7 +1565,7 @@ enum uapsd_up { struct wma_roam_invoke_cmd { uint32_t vdev_id; uint8_t bssid[QDF_MAC_ADDR_SIZE]; - uint32_t channel; + uint32_t ch_freq; uint32_t frame_len; uint8_t *frame_buf; uint8_t is_same_bssid; diff --git a/core/wma/inc/wma_if.h b/core/wma/inc/wma_if.h index 4ee19efb189d..c9a2a974527d 100644 --- a/core/wma/inc/wma_if.h +++ b/core/wma/inc/wma_if.h @@ -725,7 +725,7 @@ typedef struct { /** * struct tSwitchChannelParams - switch channel request parameter - * @channelNumber: channel number + * @ch_freq: channel frequency ID * @localPowerConstraint: local power constraint * @secondaryChannelOffset: scondary channel offset * @peSessionId: PE session id @@ -738,6 +738,8 @@ typedef struct { * @smpsMode: SMPS mode * @isDfsChannel: is DFS channel * @vhtCapable: VHT capable + * @ch_center_freq_seg0: ch freq segment for primary channel(center frequency) + * @ch_center_freq_seg1: ch freq segment for secondary channel(center frequency) * @dot11_mode: 802.11 mode * @cac_duration_ms: cac duration in milliseconds * @dfs_regdomain: dfs region @@ -746,7 +748,7 @@ typedef struct { * @ssid: sap ssid */ typedef struct { - uint8_t channelNumber; + uint32_t ch_freq; uint8_t peSessionId; int8_t maxTxPower; tSirMacAddr selfStaMacAddr; @@ -754,8 +756,8 @@ typedef struct { uint8_t isDfsChannel; uint8_t vhtCapable; enum phy_ch_width ch_width; - uint8_t ch_center_freq_seg0; - uint8_t ch_center_freq_seg1; + uint32_t ch_center_freq_seg0; + uint32_t ch_center_freq_seg1; uint8_t dot11_mode; uint8_t restart_on_chan_switch; diff --git a/core/wma/src/wma_data.c b/core/wma/src/wma_data.c index 21d73d95d17c..7524207ca5ba 100644 --- a/core/wma/src/wma_data.c +++ b/core/wma/src/wma_data.c @@ -2746,7 +2746,7 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen, } } - if (wma_handle->interfaces[vdev_id].channel >= SIR_11A_CHANNEL_BEGIN) + if (wlan_reg_is_5ghz_ch_freq(wma_handle->interfaces[vdev_id].ch_freq)) is_5g = true; mgmt_param.tx_frame = tx_frame; diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 82ba645fd7da..72803e28bf2a 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -2815,8 +2815,8 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma, CFG_TGT_DEFAULT_GTX_BW_MASK; intr[vdev_id].mhz = des_chan->ch_freq; intr[vdev_id].chan_width = ch_width; - intr[vdev_id].channel = wlan_reg_freq_to_chan(wma->pdev, - req->op_chan_freq); + intr[vdev_id].ch_freq = des_chan->ch_freq; + /* Set half or quarter rate flags */ mlme_obj->mgmt.rate_info.half_rate = req->is_half_rate; mlme_obj->mgmt.rate_info.quarter_rate = req->is_quarter_rate; diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index ed0ca8b4ef36..36190b011175 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -9203,7 +9203,8 @@ QDF_STATUS wma_send_pdev_set_pcl_cmd(tp_wma_handle wma_handle, for (i = 0; i < wma_handle->saved_chan.num_channels; i++) { msg->chan_weights.saved_chan_list[i] = - wma_handle->saved_chan.channel_list[i]; + wlan_reg_freq_to_chan(wma_handle->pdev, + wma_handle->saved_chan.ch_freq_list[i]); } msg->chan_weights.saved_num_chan = wma_handle->saved_chan.num_channels; diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 8e58748c661d..2ed4844220c0 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -154,7 +154,8 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, chan_p->cfreq2 = 0; channel = wlan_reg_freq_to_chan(wma_handle->pdev, chan_list->chanParam[i].freq); - wma_handle->saved_chan.channel_list[i] = channel; + wma_handle->saved_chan.ch_freq_list[i] = + chan_list->chanParam[i].freq; WMA_LOGD("chan[%d] = freq:%u DFS:%d tx power:%d", i, chan_p->mhz, @@ -2159,7 +2160,7 @@ void wma_process_roam_invoke(WMA_HANDLE handle, roaminvoke->vdev_id); goto free_frame_buf; } - ch_hz = (A_UINT32)cds_chan_to_freq(roaminvoke->channel); + ch_hz = roaminvoke->ch_freq; wmi_unified_roam_invoke_cmd(wma_handle->wmi_handle, (struct wmi_roam_invoke_cmd *)roaminvoke, ch_hz); @@ -3535,8 +3536,7 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params) qdf_mem_zero(&req, sizeof(req)); req.vdev_id = vdev_id; - req.op_chan_freq = wlan_reg_chan_to_freq(wma->pdev, - params->channelNumber); + req.op_chan_freq = params->ch_freq; req.chan_width = params->ch_width; if (params->ch_width == CH_WIDTH_10MHZ) @@ -3545,10 +3545,8 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params) req.is_quarter_rate = 1; req.vht_capable = params->vhtCapable; - req.chan_freq_seg0 = wlan_reg_chan_to_freq(wma->pdev, - params->ch_center_freq_seg0); - req.chan_freq_seg1 = wlan_reg_chan_to_freq(wma->pdev, - params->ch_center_freq_seg1); + req.chan_freq_seg0 = params->ch_center_freq_seg0; + req.chan_freq_seg1 = params->ch_center_freq_seg1; req.dot11_mode = params->dot11_mode; wma_update_vdev_he_capable(&req, params); @@ -3631,8 +3629,8 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params) return; send_resp: - WMA_LOGD("%s: channel %d ch_width %d txpower %d status %d", __func__, - params->channelNumber, params->ch_width, + WMA_LOGD("%s: ch_freq %d ch_width %d txpower %d status %d", __func__, + params->ch_freq, params->ch_width, params->maxTxPower, status); WMA_LOGI("%s: wma switch channel rsp,, status = 0x%x",