qcacmn: Trim scan channel list

As requirement, concurrent mode, station 5G/2G scan need stop when AP
connected by peer station.

Condition:
STA + AP 5G (connected) + AP 2.4G	skip 5G scan
STA + AP 5G (connected)			skip 5G scan
STA + AP 2.4G (connected && 2.4G only)	skip 2.4G scan
Others concurrency			skip none

Add ini ch_list_trim_conc to enable/disable the feature. Default is
disabled.

Before send WMI_SCAN_CMD to firmware, call API
policy_mgr_scan_trim_chnls_for_connected_ap() to check if need
trim scan channel list. Which channel list need be trimmed

Change-Id: If4d1cf7347f757fb013ffcb4016e8e6f16859f42
CRs-Fixed: 3075068
Šī revīzija ir iekļauta:
Yu Ouyang
2021-07-28 16:17:33 +08:00
revīziju iesūtīja Madan Koyyalamudi
vecāks d93357ef5d
revīzija b6a3f2fd44
5 mainīti faili ar 103 papildinājumiem un 17 dzēšanām

Parādīt failu

@@ -1066,6 +1066,29 @@ enum scan_mode_6ghz {
CFG_VALUE_OR_DEFAULT, \
"data inactivity time on bss channel")
/*
* <ini>
* gChlistTrimConc - Enable scan list modification on concurrent mode.
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to enable/disable scan list modification
* on concurrent mode.
*
* Related: None.
*
* Supported Feature: Concurrency, Scan
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_CHAN_LIST_TRIM_CONC CFG_INI_BOOL(\
"ch_list_trim_conc",\
false, \
"Enable scan list trim")
/*
* <ini>
* gEnableMacAddrSpoof - Enable mac address randomization feature.
@@ -1438,6 +1461,7 @@ enum scan_mode_6ghz {
CFG(CFG_MAX_REST_TIME_CONC) \
CFG(CFG_MIN_REST_TIME_CONC) \
CFG(CFG_IDLE_TIME_CONC) \
CFG(CFG_CHAN_LIST_TRIM_CONC) \
CFG(CFG_ENABLE_MAC_ADDR_SPOOFING) \
CFG(CFG_SCAN_AGING_TIME) \
CFG(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE) \

Parādīt failu

@@ -1606,4 +1606,16 @@ struct rnr_chan_weight {
enum scan_phy_mode phymode;
enum scan_flags flags;
};
/**
* trim_channel_list - which channel list need trim
* @TRIM_CHANNEL_LIST_NONE: no channel need trim
* @TRIM_CHANNEL_LIST_5G: 5G channel need trim
* @TRIM_CHANNEL_LIST_24G: 2.4G channel need trim
*/
enum trim_channel_list {
TRIM_CHANNEL_LIST_NONE,
TRIM_CHANNEL_LIST_5G,
TRIM_CHANNEL_LIST_24G,
};
#endif

Parādīt failu

@@ -734,6 +734,8 @@ wlan_scan_global_init(struct wlan_objmgr_psoc *psoc,
cfg_get(psoc, CFG_MIN_REST_TIME_CONC);
scan_obj->scan_def.conc_idle_time =
cfg_get(psoc, CFG_IDLE_TIME_CONC);
scan_obj->scan_def.conc_chlist_trim =
cfg_get(psoc, CFG_CHAN_LIST_TRIM_CONC);
scan_obj->scan_def.repeat_probe_time =
cfg_get(psoc, CFG_SCAN_PROBE_REPEAT_TIME);
scan_obj->scan_def.probe_spacing_time = SCAN_PROBE_SPACING_TIME;