qcacld-3.0: Fix connection latency situation in driver

In 11D scan procedure if WMI_11D_NEW_COUNTRY_EVENTID event is
received, host processes 11d new country code event.
Host driver as a response sends WMI_SCAN_CHAN_LIST_CMDID
new channel list cmd to firmware.

As a result the ongoing scan procedure is aborted by firmware,
and if the scan was a first scan for connection, then it would
lead to connection latency as the supplicant then have to
scan again.

Fix is to check if any scan is in progress, then delay
WMI_SCAN_CHAN_LIST_CMDID channel list command to FW till
the current scan is complete.

Change-Id: I4e747bb747c32430b5d8024823aa0df4928a8c71
CRs-Fixed: 2569741
This commit is contained in:
Pankaj Singh
2019-12-13 13:29:11 +05:30
committato da nshrivas
parent 5ae3b1b6b9
commit f84a5dd718
5 ha cambiato i file con 93 aggiunte e 0 eliminazioni

Vedi File

@@ -274,8 +274,32 @@
0, \
"Ignore Regulatory offloads Indication from FW")
/*
* <ini>
* enable_pending_list_req - Sets Pending channel List Req.
* @Min: 0
* @Max: 1
* @Default: 0
*
* This option enables/disables SCAN_CHAN_LIST_CMDID channel list command to FW
* till the current scan is complete.
*
* Related: None
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_ENABLE_PENDING_CHAN_LIST_REQ CFG_INI_BOOL( \
"enable_pending_list_req", \
0, \
"Enable Pending list req")
#define CFG_REG_ALL \
CFG(CFG_SELF_GEN_FRM_PWR) \
CFG(CFG_ENABLE_PENDING_CHAN_LIST_REQ) \
CFG(CFG_ENABLE_11D_IN_WORLD_MODE) \
CFG(CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE) \
CFG(CFG_RESTART_BEACONING_ON_CH_AVOID) \

Vedi File

@@ -2149,6 +2149,8 @@ struct wlan_mlme_mwc {
* during acs
* @avoid_acs_freq_list_num: Number of the frequencies to be avoided during acs
* @ignore_fw_reg_offload_ind: Ignore fw regulatory offload indication
* @enable_pending_chan_list_req: enables/disables scan channel
* list command to FW till the current scan is complete.
*/
struct wlan_mlme_reg {
uint32_t self_gen_frm_pwr;
@@ -2167,6 +2169,7 @@ struct wlan_mlme_reg {
uint8_t avoid_acs_freq_list_num;
#endif
bool ignore_fw_reg_offload_ind;
bool enable_pending_chan_list_req;
};
/**