qcacld-3.0: Fix channel number sent in probe response during P2P scans

Fix the channel number sent to fw in probe response during P2P scans.
Current channel number being sent to FW is 0. For the probe response
frame from Host, as there is no channel frequency added, it ends going
on default MAC 0. As in this configuration, FW will do DBS scan for
P2P find, 2G is mapped to MAC1. Hence P2P probe response ends up going
on wrong channel (STA’s 5G channel). Fix this by using the user space
supplied channel in probe response for non beaconing modes and by
using the corresponding session's frequency in probe response for the
beaconing modes.

Change-Id: I3928f8eb2c663b12e40239809e0728d07839317a
CRs-Fixed: 1009549
This commit is contained in:
Manishekar Chandrasekaran 2016-04-28 20:52:14 +05:30 committed by Gerrit - the friendly Code Review server
parent 97e077d091
commit 7edffe037b

View File

@ -2685,11 +2685,15 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen,
chanfreq = wma_handle->interfaces[vdev_id].scan_info.chan_freq;
WMA_LOGI("%s: Preauth frame on channel %d", __func__, chanfreq);
} else if (pFc->subType == SIR_MAC_MGMT_PROBE_RSP) {
chanfreq = wma_handle->interfaces[vdev_id].mhz;
WMA_LOGI("%s: Probe response frame on channel %d", __func__,
chanfreq);
WMA_LOGI("%s: Probe response frame on vdev id %d", __func__,
vdev_id);
if ((wma_is_vdev_in_ap_mode(wma_handle, vdev_id)) &&
(0 != wma_handle->interfaces[vdev_id].mhz))
chanfreq = wma_handle->interfaces[vdev_id].mhz;
else
chanfreq = channel_freq;
WMA_LOGI("%s: Probe response frame on channel %d vdev:%d",
__func__, chanfreq, vdev_id);
if (wma_is_vdev_in_ap_mode(wma_handle, vdev_id) && !chanfreq)
WMA_LOGE("%s: AP oper chan is zero", __func__);
} else if (pFc->subType == SIR_MAC_MGMT_ACTION) {
chanfreq = channel_freq;
} else {