diff --git a/components/p2p/core/src/wlan_p2p_off_chan_tx.c b/components/p2p/core/src/wlan_p2p_off_chan_tx.c index b74e709e2d..014d316914 100644 --- a/components/p2p/core/src/wlan_p2p_off_chan_tx.c +++ b/components/p2p/core/src/wlan_p2p_off_chan_tx.c @@ -3015,10 +3015,10 @@ QDF_STATUS p2p_process_rx_mgmt( return QDF_STATUS_E_INVAL; } - p2p_debug("soc:%pK, frame_len:%d, rx_chan:%d, vdev_id:%d, frm_type:%d, rx_rssi:%d, buf:%pK", - p2p_soc_obj->soc, rx_mgmt->frame_len, - rx_mgmt->rx_chan, rx_mgmt->vdev_id, rx_mgmt->frm_type, - rx_mgmt->rx_rssi, rx_mgmt->buf); + p2p_debug("soc:%pK, frame_len:%d, rx_freq:%d, vdev_id:%d, frm_type:%d, rx_rssi:%d, buf:%pK", + p2p_soc_obj->soc, rx_mgmt->frame_len, + rx_mgmt->rx_freq, rx_mgmt->vdev_id, rx_mgmt->frm_type, + rx_mgmt->rx_rssi, rx_mgmt->buf); if (rx_mgmt->frm_type == MGMT_ACTION_VENDOR_SPECIFIC) { p2p_get_frame_info(rx_mgmt->buf, rx_mgmt->frame_len, diff --git a/components/p2p/dispatcher/inc/wlan_p2p_public_struct.h b/components/p2p/dispatcher/inc/wlan_p2p_public_struct.h index 0172ff34fb..33fd71c70b 100644 --- a/components/p2p/dispatcher/inc/wlan_p2p_public_struct.h +++ b/components/p2p/dispatcher/inc/wlan_p2p_public_struct.h @@ -103,7 +103,7 @@ struct p2p_event { /** * struct p2p_rx_mgmt_frame - rx mgmt frame structure * @frame_len: Frame length - * @rx_chan: RX channel + * @rx_freq: RX Frequency * @vdev_id: Vdev id * @frm_type: Frame type * @rx_rssi: RX rssi @@ -111,7 +111,7 @@ struct p2p_event { */ struct p2p_rx_mgmt_frame { uint32_t frame_len; - uint32_t rx_chan; + uint32_t rx_freq; uint32_t vdev_id; uint32_t frm_type; uint32_t rx_rssi; diff --git a/components/p2p/dispatcher/src/wlan_p2p_tgt_api.c b/components/p2p/dispatcher/src/wlan_p2p_tgt_api.c index 8615c665e2..3416c87685 100644 --- a/components/p2p/dispatcher/src/wlan_p2p_tgt_api.c +++ b/components/p2p/dispatcher/src/wlan_p2p_tgt_api.c @@ -349,7 +349,7 @@ QDF_STATUS tgt_p2p_mgmt_frame_rx_cb(struct wlan_objmgr_psoc *psoc, pdata = (uint8_t *)qdf_nbuf_data(buf); rx_mgmt->frame_len = mgmt_rx_params->buf_len; - rx_mgmt->rx_chan = mgmt_rx_params->channel; + rx_mgmt->rx_freq = mgmt_rx_params->chan_freq; rx_mgmt->vdev_id = vdev_id; rx_mgmt->frm_type = frm_type; rx_mgmt->rx_rssi = mgmt_rx_params->snr + diff --git a/components/tdls/core/src/wlan_tdls_mgmt.c b/components/tdls/core/src/wlan_tdls_mgmt.c index 0d35db5fdd..facd63fc9a 100644 --- a/components/tdls/core/src/wlan_tdls_mgmt.c +++ b/components/tdls/core/src/wlan_tdls_mgmt.c @@ -104,10 +104,10 @@ static QDF_STATUS tdls_process_rx_mgmt( return QDF_STATUS_E_INVAL; } - tdls_debug("soc:%pK, frame_len:%d, rx_chan:%d, vdev_id:%d, frm_type:%d, rx_rssi:%d, buf:%pK", - tdls_soc_obj->soc, rx_mgmt->frame_len, - rx_mgmt->rx_chan, rx_mgmt->vdev_id, rx_mgmt->frm_type, - rx_mgmt->rx_rssi, rx_mgmt->buf); + tdls_debug("soc:%pK, frame_len:%d, rx_freq:%d, vdev_id:%d, frm_type:%d, rx_rssi:%d, buf:%pK", + tdls_soc_obj->soc, rx_mgmt->frame_len, + rx_mgmt->rx_freq, rx_mgmt->vdev_id, rx_mgmt->frm_type, + rx_mgmt->rx_rssi, rx_mgmt->buf); if (rx_mgmt->buf[TDLS_PUBLIC_ACTION_FRAME_OFFSET + 1] == TDLS_PUBLIC_ACTION_DISC_RESP) { diff --git a/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h b/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h index d7f9fa24dd..c4699a638d 100644 --- a/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h +++ b/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h @@ -545,7 +545,7 @@ struct tdls_tx_cnf { /** * struct tdls_rx_mgmt_frame - rx mgmt frame structure * @frame_len: frame length - * @rx_chan: rx channel + * @rx_freq: rx freq * @vdev_id: vdev id * @frm_type: frame type * @rx_rssi: rx rssi @@ -553,7 +553,7 @@ struct tdls_tx_cnf { */ struct tdls_rx_mgmt_frame { uint32_t frame_len; - uint32_t rx_chan; + uint32_t rx_freq; uint32_t vdev_id; uint32_t frm_type; uint32_t rx_rssi; diff --git a/components/tdls/dispatcher/src/wlan_tdls_tgt_api.c b/components/tdls/dispatcher/src/wlan_tdls_tgt_api.c index a2927b7b91..311e74c5df 100644 --- a/components/tdls/dispatcher/src/wlan_tdls_tgt_api.c +++ b/components/tdls/dispatcher/src/wlan_tdls_tgt_api.c @@ -293,7 +293,7 @@ QDF_STATUS tgt_tdls_mgmt_frame_process_rx_cb( pdata = (uint8_t *)qdf_nbuf_data(buf); rx_mgmt->frame_len = mgmt_rx_params->buf_len; - rx_mgmt->rx_chan = mgmt_rx_params->channel; + rx_mgmt->rx_freq = mgmt_rx_params->chan_freq; rx_mgmt->vdev_id = vdev_id; rx_mgmt->frm_type = frm_type; rx_mgmt->rx_rssi = mgmt_rx_params->rssi; diff --git a/core/cds/src/i_cds_packet.h b/core/cds/src/i_cds_packet.h index 947bcd6fef..4bd19d1f55 100644 --- a/core/cds/src/i_cds_packet.h +++ b/core/cds/src/i_cds_packet.h @@ -37,7 +37,7 @@ * Rx Packet Struct * Buffer for the packet received from WMA has pointers to 802.11 * frame fields and additional information based on the type of frame. - * @channel: Channel number + * @frequency: Frequency * @snr: Signal to noise ratio * @rssi: Received signal strength indicator, normalized to -96 dBm as * normal noise floor by adding -96 to snr. All the configured @@ -57,7 +57,7 @@ * @rssi_raw: rssi based on actual noise floor in hardware. */ typedef struct { - uint8_t channel; + uint32_t frequency; uint8_t snr; uint32_t rssi; uint32_t timestamp; diff --git a/core/hdd/inc/wlan_hdd_p2p.h b/core/hdd/inc/wlan_hdd_p2p.h index bd2413c352..39d80f10f8 100644 --- a/core/hdd/inc/wlan_hdd_p2p.h +++ b/core/hdd/inc/wlan_hdd_p2p.h @@ -66,13 +66,13 @@ int hdd_set_p2p_noa(struct net_device *dev, uint8_t *command); * @frm_len: frame length * @pb_frames: frame bytes * @frame_type: frame type - * @rx_chan: channel on which frame was received + * @rx_freq: frequency on which frame was received * @rx_rssi: rssi * @rx_flags: rx flags of the frame */ void hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter, uint32_t frm_len, uint8_t *pb_frames, - uint8_t frame_type, uint32_t rx_chan, + uint8_t frame_type, uint32_t rx_freq, int8_t rx_rssi, enum rxmgmt_flags rx_flags); diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index b3bf82699e..1ff362ecd5 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -9563,7 +9563,7 @@ void hdd_indicate_mgmt_frame(tSirSmeMgmtFrameInd *frame_ind) frame_ind->frame_len, frame_ind->frameBuf, frame_ind->frameType, - frame_ind->rxChan, + frame_ind->rx_freq, frame_ind->rxRssi, frame_ind->rx_flags); } @@ -9580,7 +9580,7 @@ void hdd_indicate_mgmt_frame(tSirSmeMgmtFrameInd *frame_ind) frame_ind->frame_len, frame_ind->frameBuf, frame_ind->frameType, - frame_ind->rxChan, + frame_ind->rx_freq, frame_ind->rxRssi, frame_ind->rx_flags); } diff --git a/core/hdd/src/wlan_hdd_p2p.c b/core/hdd/src/wlan_hdd_p2p.c index bc06f0de53..f7e78d8a1b 100644 --- a/core/hdd/src/wlan_hdd_p2p.c +++ b/core/hdd/src/wlan_hdd_p2p.c @@ -981,18 +981,17 @@ wlan_hdd_cfg80211_convert_rxmgmt_flags(enum rxmgmt_flags flag, static void __hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter, uint32_t frm_len, uint8_t *pb_frames, - uint8_t frame_type, uint32_t rx_chan, + uint8_t frame_type, uint32_t rx_freq, int8_t rx_rssi, enum rxmgmt_flags rx_flags) { - uint16_t freq; uint8_t type = 0; uint8_t sub_type = 0; struct hdd_context *hdd_ctx; uint8_t *dest_addr; enum nl80211_rxmgmt_flags nl80211_flag = 0; - hdd_debug("Frame Type = %d Frame Length = %d", - frame_type, frm_len); + hdd_debug("Frame Type = %d Frame Length = %d freq = %d", + frame_type, frm_len, rx_freq); if (!adapter) { hdd_err("adapter is NULL"); @@ -1063,12 +1062,6 @@ __hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter, /* Channel indicated may be wrong. TODO */ /* Indicate an action frame. */ - if (rx_chan <= MAX_NO_OF_2_4_CHANNELS) - freq = ieee80211_channel_to_frequency(rx_chan, - NL80211_BAND_2GHZ); - else - freq = ieee80211_channel_to_frequency(rx_chan, - NL80211_BAND_5GHZ); if (hdd_is_qos_action_frame(pb_frames, frm_len)) sme_update_dsc_pto_up_mapping(hdd_ctx->mac_handle, @@ -1085,23 +1078,23 @@ __hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)) cfg80211_rx_mgmt(adapter->dev->ieee80211_ptr, - freq, rx_rssi * 100, pb_frames, + rx_freq, rx_rssi * 100, pb_frames, frm_len, NL80211_RXMGMT_FLAG_ANSWERED | nl80211_flag); #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)) cfg80211_rx_mgmt(adapter->dev->ieee80211_ptr, - freq, rx_rssi * 100, pb_frames, + rx_freq, rx_rssi * 100, pb_frames, frm_len, NL80211_RXMGMT_FLAG_ANSWERED, GFP_ATOMIC); #else - cfg80211_rx_mgmt(adapter->dev->ieee80211_ptr, freq, - rx_rssi * 100, - pb_frames, frm_len, GFP_ATOMIC); + cfg80211_rx_mgmt(adapter->dev->ieee80211_ptr, rx_freq, + rx_rssi * 100, + pb_frames, frm_len, GFP_ATOMIC); #endif /* LINUX_VERSION_CODE */ } void hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter, uint32_t frm_len, uint8_t *pb_frames, - uint8_t frame_type, uint32_t rx_chan, + uint8_t frame_type, uint32_t rx_freq, int8_t rx_rssi, enum rxmgmt_flags rx_flags) { int errno; @@ -1112,7 +1105,7 @@ void hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter, return; __hdd_indicate_mgmt_frame_to_user(adapter, frm_len, pb_frames, - frame_type, rx_chan, + frame_type, rx_freq, rx_rssi, rx_flags); osif_vdev_sync_op_stop(vdev_sync); } diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index 0e095b8d95..c0c997a135 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -1926,7 +1926,7 @@ enum rxmgmt_flags { typedef struct sSirSmeMgmtFrameInd { uint16_t frame_len; - uint32_t rxChan; + uint32_t rx_freq; uint8_t sessionId; uint8_t frameType; int8_t rxRssi; diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c index 8425d84dbc..931d353991 100644 --- a/core/mac/src/pe/lim/lim_api.c +++ b/core/mac/src/pe/lim/lim_api.c @@ -1895,7 +1895,7 @@ lim_roam_gen_mbssid_beacon(struct mac_context *mac, bcn_prb_ptr = (uint8_t *)roam_ind + roam_ind->beaconProbeRespOffset; - rx_param.channel = wlan_freq_to_chan(roam_ind->chan_freq); + rx_param.chan_freq = roam_ind->chan_freq; rx_param.pdev_id = wlan_objmgr_pdev_get_pdev_id(mac->pdev); rx_param.rssi = roam_ind->rssi; diff --git a/core/mac/src/pe/lim/lim_process_action_frame.c b/core/mac/src/pe/lim/lim_process_action_frame.c index 756444bcbc..b063f2e234 100644 --- a/core/mac/src/pe/lim/lim_process_action_frame.c +++ b/core/mac/src/pe/lim/lim_process_action_frame.c @@ -1070,7 +1070,7 @@ static void __lim_process_qos_map_configure_frame(struct mac_context *mac_ctx, lim_send_sme_mgmt_frame_ind(mac_ctx, mac_hdr->fc.subType, (uint8_t *)mac_hdr, frame_len + sizeof(tSirMacMgmtHdr), 0, - WMA_GET_RX_CH(rx_pkt_info), session, + WMA_GET_RX_FREQ(rx_pkt_info), session, WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info), RXMGMT_FLAG_NONE); } @@ -1289,7 +1289,7 @@ __lim_process_radio_measure_request(struct mac_context *mac, uint8_t *pRxPacketI mac->rrm.rrmPEContext.prev_rrm_report_seq_num = curr_seq_num; lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType, (uint8_t *)pHdr, frameLen + sizeof(tSirMacMgmtHdr), 0, - WMA_GET_RX_CH(pRxPacketInfo), pe_session, + WMA_GET_RX_FREQ(pRxPacketInfo), pe_session, WMA_GET_RX_RSSI_NORMALIZED(pRxPacketInfo), RXMGMT_FLAG_NONE); @@ -1519,7 +1519,7 @@ static void __lim_process_sa_query_response_action_frame(struct mac_context *mac (uint8_t *)pHdr, frame_len + sizeof(tSirMacMgmtHdr), 0, - WMA_GET_RX_CH(pRxPacketInfo), + WMA_GET_RX_FREQ(pRxPacketInfo), pe_session, WMA_GET_RX_RSSI_NORMALIZED( pRxPacketInfo), RXMGMT_FLAG_NONE); @@ -1941,7 +1941,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx, (uint8_t *) mac_hdr, frame_len + sizeof(tSirMacMgmtHdr), session->smeSessionId, - WMA_GET_RX_CH(rx_pkt_info), + WMA_GET_RX_FREQ(rx_pkt_info), session, rssi, RXMGMT_FLAG_NONE); break; default: @@ -2029,7 +2029,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx, frame_len + sizeof(tSirMacMgmtHdr), session->smeSessionId, - WMA_GET_RX_CH(rx_pkt_info), + WMA_GET_RX_FREQ(rx_pkt_info), session, WMA_GET_RX_RSSI_NORMALIZED( rx_pkt_info), RXMGMT_FLAG_NONE); @@ -2089,7 +2089,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx, (uint8_t *) mac_hdr, frame_len + sizeof(tSirMacMgmtHdr), session->smeSessionId, - WMA_GET_RX_CH(rx_pkt_info), session, + WMA_GET_RX_FREQ(rx_pkt_info), session, WMA_GET_RX_RSSI_NORMALIZED( rx_pkt_info), RXMGMT_FLAG_NONE); break; @@ -2153,7 +2153,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx, (uint8_t *)hdr, frame_len + sizeof(tSirMacMgmtHdr), session->smeSessionId, - WMA_GET_RX_CH(rx_pkt_info), + WMA_GET_RX_FREQ(rx_pkt_info), session, WMA_GET_RX_RSSI_NORMALIZED( rx_pkt_info), RXMGMT_FLAG_NONE); @@ -2173,7 +2173,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx, mac_hdr->fc.subType, (uint8_t *) mac_hdr, frame_len + sizeof(tSirMacMgmtHdr), session->smeSessionId, - WMA_GET_RX_CH(rx_pkt_info), session, rssi, + WMA_GET_RX_FREQ(rx_pkt_info), session, rssi, RXMGMT_FLAG_NONE); break; default: @@ -2277,7 +2277,7 @@ void lim_process_action_frame_no_session(struct mac_context *mac, uint8_t *pBd) mac_hdr->fc.subType, (uint8_t *) mac_hdr, frame_len + sizeof(tSirMacMgmtHdr), 0, - WMA_GET_RX_CH(pBd), NULL, + WMA_GET_RX_FREQ(pBd), NULL, WMA_GET_RX_RSSI_NORMALIZED(pBd), RXMGMT_FLAG_NONE); break; diff --git a/core/mac/src/pe/lim/lim_process_auth_frame.c b/core/mac/src/pe/lim/lim_process_auth_frame.c index 1971d9a811..16c00fd196 100644 --- a/core/mac/src/pe/lim/lim_process_auth_frame.c +++ b/core/mac/src/pe/lim/lim_process_auth_frame.c @@ -407,7 +407,7 @@ static void lim_process_sae_auth_frame(struct mac_context *mac_ctx, (uint8_t *)mac_hdr, frame_len + sizeof(tSirMacMgmtHdr), pe_session->smeSessionId, - WMA_GET_RX_CH(rx_pkt_info), pe_session, + WMA_GET_RX_FREQ(rx_pkt_info), pe_session, WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info), rx_flags); } @@ -1649,7 +1649,7 @@ bool lim_process_sae_preauth_frame(struct mac_context *mac, uint8_t *rx_pkt) (uint8_t *)dot11_hdr, frm_len + sizeof(tSirMacMgmtHdr), SME_SESSION_ID_ANY, - WMA_GET_RX_CH(rx_pkt), NULL, + WMA_GET_RX_FREQ(rx_pkt), NULL, WMA_GET_RX_RSSI_NORMALIZED(rx_pkt), RXMGMT_FLAG_NONE); return true; diff --git a/core/mac/src/pe/lim/lim_process_message_queue.c b/core/mac/src/pe/lim/lim_process_message_queue.c index 9131d89b52..048a2a6312 100644 --- a/core/mac/src/pe/lim/lim_process_message_queue.c +++ b/core/mac/src/pe/lim/lim_process_message_queue.c @@ -631,7 +631,9 @@ __lim_pno_match_fwd_bcn_probepsp(struct mac_context *pmac, uint8_t *rx_pkt_info, result->ap[i].beaconPeriod = frame->beaconInterval; result->ap[i].capability = lim_get_u16((uint8_t *) &frame->capabilityInfo); - result->ap[i].channel = WMA_GET_RX_CH(rx_pkt_info); + result->ap[i].channel = wlan_reg_freq_to_chan( + pmac->pdev, + WMA_GET_RX_FREQ(rx_pkt_info)); result->ap[i].rssi = WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info); result->ap[i].rtt = 0; result->ap[i].rtt_sd = 0; @@ -682,7 +684,9 @@ __lim_ext_scan_forward_bcn_probe_rsp(struct mac_context *pmac, uint8_t *rx_pkt_i result->ap.beaconPeriod = frame->beaconInterval; result->ap.capability = lim_get_u16((uint8_t *) &frame->capabilityInfo); - result->ap.channel = WMA_GET_RX_CH(rx_pkt_info); + result->ap.channel = wlan_reg_freq_to_chan( + pmac->pdev, + WMA_GET_RX_FREQ(rx_pkt_info)); result->ap.rssi = WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info); result->ap.rtt = 0; result->ap.rtt_sd = 0; @@ -821,8 +825,8 @@ __lim_handle_beacon(struct mac_context *mac, struct scheduler_msg *pMsg, static void lim_fill_sap_bcn_pkt_meta(struct scan_cache_entry *scan_entry, cds_pkt_t *rx_pkt) { - rx_pkt->pkt_meta.channel = scan_entry->channel.chan_idx; - + rx_pkt->pkt_meta.frequency = scan_entry->channel.chan_freq; + pe_debug("rx pkt meta freq %d", rx_pkt->pkt_meta.frequency); rx_pkt->pkt_meta.mpdu_hdr_len = sizeof(struct ieee80211_frame); rx_pkt->pkt_meta.mpdu_len = scan_entry->raw_frame.len; rx_pkt->pkt_meta.mpdu_data_len = rx_pkt->pkt_meta.mpdu_len - @@ -947,7 +951,8 @@ void lim_handle_sap_beacon(struct wlan_objmgr_pdev *pdev, for (session_id = 0; session_id < mac_ctx->lim.maxBssId; session_id++) { if (filter->sap_channel[session_id] && (filter->sap_channel[session_id] == - scan_entry->channel.chan_idx)) { + wlan_reg_freq_to_chan(pdev, + scan_entry->channel.chan_freq))) { if (!pkt) { status = lim_allocate_and_get_bcn( mac_ctx, &pkt, &rx_pkt_info, @@ -1142,7 +1147,7 @@ lim_check_mgmt_registered_frames(struct mac_context *mac_ctx, uint8_t *buff_desc (uint8_t *) hdr, WMA_GET_RX_PAYLOAD_LEN(buff_desc) + sizeof(tSirMacMgmtHdr), mgmt_frame->sessionId, - WMA_GET_RX_CH(buff_desc), session_entry, + WMA_GET_RX_FREQ(buff_desc), session_entry, WMA_GET_RX_RSSI_NORMALIZED(buff_desc), RXMGMT_FLAG_NONE); @@ -1226,7 +1231,7 @@ lim_handle80211_frames(struct mac_context *mac, struct scheduler_msg *limMsg, struct pe_session *pe_session = NULL; uint8_t sessionId; bool isFrmFt = false; - uint8_t channel; + uint32_t frequency; bool is_hw_sbs_capable = false; *pDeferMsg = false; @@ -1235,14 +1240,15 @@ lim_handle80211_frames(struct mac_context *mac, struct scheduler_msg *limMsg, pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo); isFrmFt = WMA_GET_RX_FT_DONE(pRxPacketInfo); - channel = WMA_GET_RX_CH(pRxPacketInfo); + frequency = WMA_GET_RX_FREQ(pRxPacketInfo); fc = pHdr->fc; is_hw_sbs_capable = policy_mgr_is_hw_sbs_capable(mac->psoc); - if (IS_5G_CH(channel) && - (!is_hw_sbs_capable || - (is_hw_sbs_capable && wlan_reg_is_dfs_ch(mac->pdev, channel))) && + if (WLAN_REG_IS_5GHZ_CH_FREQ(frequency) && + (!is_hw_sbs_capable || + (is_hw_sbs_capable && + wlan_reg_is_dfs_for_freq(mac->pdev, frequency))) && mac->sap.SapDfsInfo.is_dfs_cac_timer_running) { pe_session = pe_find_session_by_bssid(mac, pHdr->bssId, &sessionId); diff --git a/core/mac/src/pe/lim/lim_process_probe_req_frame.c b/core/mac/src/pe/lim/lim_process_probe_req_frame.c index 45f1d75c3d..8d73ae0e3e 100644 --- a/core/mac/src/pe/lim/lim_process_probe_req_frame.c +++ b/core/mac/src/pe/lim/lim_process_probe_req_frame.c @@ -446,7 +446,8 @@ lim_indicate_probe_req_to_hdd(struct mac_context *mac, uint8_t *pBd, lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType, (uint8_t *) pHdr, (frameLen + sizeof(tSirMacMgmtHdr)), - pe_session->smeSessionId, WMA_GET_RX_CH(pBd), + pe_session->smeSessionId, + WMA_GET_RX_FREQ(pBd), pe_session, WMA_GET_RX_RSSI_NORMALIZED(pBd), RXMGMT_FLAG_NONE); diff --git a/core/mac/src/pe/lim/lim_scan_result_utils.c b/core/mac/src/pe/lim/lim_scan_result_utils.c index d67f654aad..2264044821 100644 --- a/core/mac/src/pe/lim/lim_scan_result_utils.c +++ b/core/mac/src/pe/lim/lim_scan_result_utils.c @@ -70,7 +70,6 @@ lim_collect_bss_description(struct mac_context *mac, uint32_t ieLen = 0; tpSirMacMgmtHdr pHdr; uint8_t channel_num; - uint8_t rx_channel; uint8_t rfBand = 0; pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo); @@ -82,7 +81,6 @@ lim_collect_bss_description(struct mac_context *mac, } ieLen = WMA_GET_RX_PAYLOAD_LEN(pRxPacketInfo) - SIR_MAC_B_PR_SSID_OFFSET; - rx_channel = WMA_GET_RX_CH(pRxPacketInfo); pBody = WMA_GET_RX_MPDU_DATA(pRxPacketInfo); rfBand = WMA_GET_RX_RFBAND(pRxPacketInfo); diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index 956080956d..53a25d34d0 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -7648,7 +7648,7 @@ enum rateid lim_get_min_session_txrate(struct pe_session *session) void lim_send_sme_mgmt_frame_ind(struct mac_context *mac_ctx, uint8_t frame_type, uint8_t *frame, uint32_t frame_len, - uint16_t session_id, uint32_t rx_channel, + uint16_t session_id, uint32_t rx_freq, struct pe_session *psession_entry, int8_t rx_rssi, enum rxmgmt_flags rx_flags) { @@ -7672,7 +7672,7 @@ void lim_send_sme_mgmt_frame_ind(struct mac_context *mac_ctx, uint8_t frame_type sme_mgmt_frame->sessionId = session_id; sme_mgmt_frame->frameType = frame_type; sme_mgmt_frame->rxRssi = rx_rssi; - sme_mgmt_frame->rxChan = rx_channel; + sme_mgmt_frame->rx_freq = rx_freq; sme_mgmt_frame->rx_flags = rx_flags; qdf_mem_zero(sme_mgmt_frame->frameBuf, frame_len); diff --git a/core/mac/src/pe/lim/lim_utils.h b/core/mac/src/pe/lim/lim_utils.h index c0f19a27c6..42cf5b3399 100644 --- a/core/mac/src/pe/lim/lim_utils.h +++ b/core/mac/src/pe/lim/lim_utils.h @@ -193,7 +193,7 @@ void lim_update_short_slot_time(struct mac_context *mac, tSirMacAddr peerMacAddr * @frame_len: Length og mgmt frame * @session_id: session id * @psession_entry: PE Session Entry - * @rx_channel: Channel of where packet is received + * @rx_freq: Frequency on which packet is received * @rx_rssi: rssi value * @rx_flags: RXMGMT flags to be set for the frame. Defined in enum rxmgmt_flags * @@ -204,7 +204,7 @@ void lim_update_short_slot_time(struct mac_context *mac, tSirMacAddr peerMacAddr */ void lim_send_sme_mgmt_frame_ind(struct mac_context *mac_ctx, uint8_t frame_type, uint8_t *frame, uint32_t frame_len, - uint16_t session_id, uint32_t rx_channel, + uint16_t session_id, uint32_t rx_freq, struct pe_session *psession_entry, int8_t rx_rssi, enum rxmgmt_flags rx_flags); diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c index da468b7e7a..fbda95321c 100644 --- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c +++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c @@ -4053,12 +4053,10 @@ sir_convert_beacon_frame2_struct(struct mac_context *mac, uint32_t status, nPayload; uint8_t *pPayload; tpSirMacMgmtHdr pHdr; - uint8_t mappedRXCh; pPayload = WMA_GET_RX_MPDU_DATA(pFrame); nPayload = WMA_GET_RX_PAYLOAD_LEN(pFrame); pHdr = WMA_GET_RX_MAC_HEADER(pFrame); - mappedRXCh = WMA_GET_RX_CH(pFrame); /* Zero-init our [out] parameter, */ qdf_mem_zero((uint8_t *) pBeaconStruct, sizeof(tSirProbeRespBeacon)); @@ -4222,7 +4220,9 @@ sir_convert_beacon_frame2_struct(struct mac_context *mac, } else if (pBeacon->HTInfo.present) { pBeaconStruct->channelNumber = pBeacon->HTInfo.primaryChannel; } else { - pBeaconStruct->channelNumber = mappedRXCh; + pBeaconStruct->channelNumber = + wlan_reg_freq_to_chan(mac->pdev, + WMA_GET_RX_FREQ(pFrame)); pe_debug_rl("In Beacon No Channel info"); } diff --git a/core/sap/src/sap_ch_select.c b/core/sap/src/sap_ch_select.c index f0405b04d0..33400a0a9d 100644 --- a/core/sap/src/sap_ch_select.c +++ b/core/sap/src/sap_ch_select.c @@ -1453,8 +1453,10 @@ static void sap_compute_spect_weight(tSapChSelSpectInfo *pSpectInfoParams, for (chn_num = 0; chn_num < pSpectInfoParams->numSpectChans; chn_num++) { - channel_id = - util_scan_entry_channel_num(cur_node->entry); + channel_id = wlan_reg_freq_to_chan( + mac->pdev, + util_scan_entry_channel_frequency( + cur_node->entry)); if (pSpectCh && (channel_id == pSpectCh->chNum)) { if (pSpectCh->rssiAgr < diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c index 274ddb3081..f4ac7455a3 100644 --- a/core/sme/src/csr/csr_api_scan.c +++ b/core/sme/src/csr/csr_api_scan.c @@ -390,8 +390,7 @@ static void csr_scan_add_result(struct mac_context *mac_ctx, frm_type = MGMT_PROBE_RESP; rx_param.pdev_id = 0; - rx_param.channel = wlan_reg_freq_to_chan(mac_ctx->pdev, - bss_desc->chan_freq); + rx_param.chan_freq = bss_desc->chan_freq; rx_param.rssi = bss_desc->rssi; rx_param.tsf_delta = bss_desc->tsf_delta; @@ -2355,12 +2354,15 @@ static QDF_STATUS csr_fill_bss_from_scan_entry(struct mac_context *mac_ctx, enum channel_state ap_channel_state; ap_channel_state = - wlan_reg_get_channel_state(mac_ctx->pdev, - scan_entry->channel.chan_idx); + wlan_reg_get_channel_state( + mac_ctx->pdev, + wlan_reg_freq_to_chan( + mac_ctx->pdev, + scan_entry->channel.chan_freq)); if (ap_channel_state == CHANNEL_STATE_DISABLE || ap_channel_state == CHANNEL_STATE_INVALID) { sme_err("BSS %pM channel %d invalid, not populating this BSSID", - scan_entry->bssid.bytes, scan_entry->channel.chan_idx); + scan_entry->bssid.bytes, scan_entry->channel.chan_freq); return QDF_STATUS_E_INVAL; } @@ -2408,7 +2410,7 @@ static QDF_STATUS csr_fill_bss_from_scan_entry(struct mac_context *mac_ctx, bss_desc->beaconInterval = scan_entry->bcn_int; bss_desc->capabilityInfo = scan_entry->cap_info.value; - if (WLAN_REG_IS_5GHZ_CH(scan_entry->channel.chan_idx)) + if (WLAN_REG_IS_5GHZ_CH_FREQ(scan_entry->channel.chan_freq)) bss_desc->nwType = eSIR_11A_NW_TYPE; else if (scan_entry->phy_mode == WLAN_PHYMODE_11B) bss_desc->nwType = eSIR_11B_NW_TYPE; @@ -2419,9 +2421,7 @@ static QDF_STATUS csr_fill_bss_from_scan_entry(struct mac_context *mac_ctx, bss_desc->rssi_raw = scan_entry->rssi_raw; /* channel frequency what peer sent in beacon/probersp. */ - bss_desc->chan_freq = - wlan_reg_chan_to_freq(mac_ctx->pdev, - scan_entry->channel.chan_idx); + bss_desc->chan_freq = scan_entry->channel.chan_freq; bss_desc->received_time = scan_entry->scan_entry_time; bss_desc->startTSF[0] = @@ -2809,7 +2809,9 @@ void csr_init_occupied_channels_list(struct mac_context *mac_ctx, while (cur_lst) { cur_node = qdf_container_of(cur_lst, struct scan_cache_node, node); - ch = cur_node->entry->channel.chan_idx; + ch = wlan_reg_freq_to_chan( + pdev, + cur_node->entry->channel.chan_freq); csr_add_to_occupied_channels( mac_ctx, ch, sessionId, diff --git a/core/wma/inc/wma_types.h b/core/wma/inc/wma_types.h index 3e966a2c0d..a7973ebcf9 100644 --- a/core/wma/inc/wma_types.h +++ b/core/wma/inc/wma_types.h @@ -57,8 +57,8 @@ #define WMA_GET_RX_UNKNOWN_UCAST(pRxMeta) 0 -#define WMA_GET_RX_CH(pRxMeta) \ - (((t_packetmeta *)pRxMeta)->channel) +#define WMA_GET_RX_FREQ(pRxMeta) \ + (((t_packetmeta *)pRxMeta)->frequency) #define WMA_GET_RX_FT_DONE(pRxMeta) 0 diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c index 8b125b3514..0c58ae01f7 100644 --- a/core/wma/src/wma_mgmt.c +++ b/core/wma/src/wma_mgmt.c @@ -4303,7 +4303,7 @@ int wma_form_rx_packet(qdf_nbuf_t buf, * Fill in meta information needed by pe/lim * TODO: Try to maintain rx metainfo as part of skb->data. */ - rx_pkt->pkt_meta.channel = mgmt_rx_params->channel; + rx_pkt->pkt_meta.frequency = mgmt_rx_params->chan_freq; rx_pkt->pkt_meta.scan_src = mgmt_rx_params->flags; /* diff --git a/os_if/p2p/src/wlan_cfg80211_p2p.c b/os_if/p2p/src/wlan_cfg80211_p2p.c index 723246bc97..480be2541e 100644 --- a/os_if/p2p/src/wlan_cfg80211_p2p.c +++ b/os_if/p2p/src/wlan_cfg80211_p2p.c @@ -53,7 +53,6 @@ static void wlan_p2p_rx_callback(void *user_data, struct wlan_objmgr_vdev *vdev; struct vdev_osif_priv *osif_priv; struct wireless_dev *wdev; - uint16_t freq; osif_debug("user data:%pK, vdev id:%d, rssi:%d, buf:%pK, len:%d", user_data, rx_frame->vdev_id, rx_frame->rx_rssi, @@ -84,27 +83,20 @@ static void wlan_p2p_rx_callback(void *user_data, goto fail; } - if (rx_frame->rx_chan <= MAX_NO_OF_2_4_CHANNELS) - freq = ieee80211_channel_to_frequency( - rx_frame->rx_chan, NL80211_BAND_2GHZ); - else - freq = ieee80211_channel_to_frequency( - rx_frame->rx_chan, NL80211_BAND_5GHZ); - osif_debug("Indicate frame over nl80211, vdev id:%d, idx:%d", rx_frame->vdev_id, wdev->netdev->ifindex); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)) - cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100, - rx_frame->buf, rx_frame->frame_len, - NL80211_RXMGMT_FLAG_ANSWERED); + cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100, + rx_frame->buf, rx_frame->frame_len, + NL80211_RXMGMT_FLAG_ANSWERED); #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)) - cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100, - rx_frame->buf, rx_frame->frame_len, - NL80211_RXMGMT_FLAG_ANSWERED, GFP_ATOMIC); + cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100, + rx_frame->buf, rx_frame->frame_len, + NL80211_RXMGMT_FLAG_ANSWERED, GFP_ATOMIC); #else - cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100, - rx_frame->buf, rx_frame->frame_len, GFP_ATOMIC); + cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100, + rx_frame->buf, rx_frame->frame_len, GFP_ATOMIC); #endif /* LINUX_VERSION_CODE */ fail: wlan_objmgr_vdev_release_ref(vdev, WLAN_P2P_ID); diff --git a/os_if/tdls/src/wlan_cfg80211_tdls.c b/os_if/tdls/src/wlan_cfg80211_tdls.c index 2e631cf2f8..6ce4976a86 100644 --- a/os_if/tdls/src/wlan_cfg80211_tdls.c +++ b/os_if/tdls/src/wlan_cfg80211_tdls.c @@ -623,7 +623,6 @@ void wlan_cfg80211_tdls_rx_callback(void *user_data, struct wlan_objmgr_vdev *vdev; struct vdev_osif_priv *osif_priv; struct wireless_dev *wdev; - uint16_t freq; osif_debug("user data:%pK, vdev id:%d, rssi:%d, buf:%pK, len:%d", user_data, rx_frame->vdev_id, rx_frame->rx_rssi, @@ -654,27 +653,20 @@ void wlan_cfg80211_tdls_rx_callback(void *user_data, goto fail; } - if (rx_frame->rx_chan <= TDLS_MAX_NO_OF_2_4_CHANNELS) - freq = ieee80211_channel_to_frequency( - rx_frame->rx_chan, NL80211_BAND_2GHZ); - else - freq = ieee80211_channel_to_frequency( - rx_frame->rx_chan, NL80211_BAND_5GHZ); - osif_notice("Indicate frame over nl80211, vdev id:%d, idx:%d", rx_frame->vdev_id, wdev->netdev->ifindex); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)) - cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100, - rx_frame->buf, rx_frame->frame_len, - NL80211_RXMGMT_FLAG_ANSWERED); + cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100, + rx_frame->buf, rx_frame->frame_len, + NL80211_RXMGMT_FLAG_ANSWERED); #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0)) - cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100, - rx_frame->buf, rx_frame->frame_len, - NL80211_RXMGMT_FLAG_ANSWERED, GFP_ATOMIC); + cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100, + rx_frame->buf, rx_frame->frame_len, + NL80211_RXMGMT_FLAG_ANSWERED, GFP_ATOMIC); #else - cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100, - rx_frame->buf, rx_frame->frame_len, GFP_ATOMIC); + cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100, + rx_frame->buf, rx_frame->frame_len, GFP_ATOMIC); #endif /* LINUX_VERSION_CODE */ fail: wlan_objmgr_vdev_release_ref(vdev, WLAN_TDLS_NB_ID);