qcacmn: Add 6GHz support for chan/freq/band usage in mesh mode

Currently mesh mode uses channel numbering which is derived
from APIs that don't support 6GHz channels numbering due to the
overloading of 6GHz channels with 2.4GHz and 5GHz.

Add support to obtain the correct channel number (and auxiliary
information like band and frequency) through the new APIs that
support 6GHz.

Change-Id: Ib0b39ebae2a22bd6b2b5d17b9058c3c2100e0d59
CRs-Fixed: 2605229
This commit is contained in:
Aditya Sathish
2020-01-29 15:14:02 +05:30
committed by nshrivas
parent c4667b8b12
commit 041409f98f
5 changed files with 37 additions and 7 deletions

View File

@@ -546,6 +546,9 @@ void dp_rx_fill_mesh_stats(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
uint32_t nss;
uint32_t rate_mcs;
uint32_t bw;
uint8_t primary_chan_num;
uint32_t center_chan_freq;
struct dp_soc *soc;
/* fill recv mesh stats */
rx_info = qdf_mem_malloc(sizeof(struct mesh_recv_hdr_s));
@@ -577,7 +580,18 @@ void dp_rx_fill_mesh_stats(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
}
rx_info->rs_rssi = hal_rx_msdu_start_get_rssi(rx_tlv_hdr);
rx_info->rs_channel = hal_rx_msdu_start_get_freq(rx_tlv_hdr);
soc = vdev->pdev->soc;
primary_chan_num = hal_rx_msdu_start_get_freq(rx_tlv_hdr);
center_chan_freq = hal_rx_msdu_start_get_freq(rx_tlv_hdr) >> 16;
if (soc->cdp_soc.ol_ops && soc->cdp_soc.ol_ops->freq_to_band) {
rx_info->rs_band = soc->cdp_soc.ol_ops->freq_to_band(
soc->ctrl_psoc,
vdev->pdev->pdev_id,
center_chan_freq);
}
rx_info->rs_channel = primary_chan_num;
pkt_type = hal_rx_msdu_start_get_pkt_type(rx_tlv_hdr);
rate_mcs = hal_rx_msdu_start_rate_mcs_get(rx_tlv_hdr);
bw = hal_rx_msdu_start_bw_get(rx_tlv_hdr);