qcacmn: Fix 4.9GHz cfg80211 issues

Send correct channel list to Firmware. When cfg80211 is enabled, STA
is scanning in a set of wrong channels. When scan callback happens
from cfg80211 module the cfg80211 module gives us the channel numbers.
There are some channel numbers which are same in both 5GHz and in
2.4Ghz bands. For example, channel number 1 maps to frequency 4942MHz
in 5GHz band, but in 2.4GHz band channel number 1 maps to frequency
2412MHz. So cfg80211 may give us a wrong channel number. Since we have
the exact frequency of the channel we should use that instead of the
one given by cfg80211.
The channel object given to the driver by cfg80211 during scan callback
is the same as the one registered to cfg80211 by the driver. So we can
use the channel frequency inside the channel object for scan which is
not changed by the cfg80211 module.

Use regdb function to convert channel number to frequency while receiving
scan entries from FW. Use pdev band (5/2.4GHz) information to map to
correct 2.4Ghz/5Ghz channel frequency.

Half/Quarter rate flags in the scan_ctrl_flags are not set. Set
Half/Quarter rate flags in scan_ctrl_flags.

Change-Id: I9df8f0e90938f86f6987574f8259a5cf66b672aa
CRs-Fixed: 2180273
This commit is contained in:
Shashikala Prabhu
2018-04-13 01:13:30 +05:30
committed by nshrivas
szülő 685bf25eb3
commit 48ecda84bf
7 fájl változott, egészen pontosan 152 új sor hozzáadva és 25 régi sor törölve

Fájl megtekintése

@@ -119,11 +119,14 @@ struct scan_req {
* struct scan_params - Scan params
* @source: scan request source
* @default_ie: default scan ie
*
* @half_rate: Half rate flag
* @quarter_rate: Quarter rate flag
*/
struct scan_params {
uint8_t source;
struct element_info default_ie;
bool half_rate;
bool quarter_rate;
};
/**