qcacmn: Allow FW to pno scan 6G chan based on RNR flag only
First host checks below two things in PNO scan request: 1. Userspace sets NL80211_SCAN_FLAG_COLOCATED_6GHZ flag in pno scan request. 2. At least one 6G channel is present in the pno scan req. If any of above conditions satisfy, Host fills all remaining (other than channel(s) present in pno scan req) valid 6 GHz channel(s) to pno scan requests and set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND for each remaining channel(s). Host sends this updated channel list via WMI command WMI_START_SCAN_CMDID_param_tlvs->channel_list for pno scan to firmware. By this driver allows Firmware to scan 6G channels based on RNR IEs only (for colocated APs reported by 2.4/5 GHz APs). Change-Id: Ib6118c4525e9fbe233eb6a7e07a4a3345d486e8a CRs-Fixed: 3103923
Este cometimento está contido em:

cometido por
Madan Koyyalamudi

ascendente
77530eea0b
cometimento
3b1731aa70
@@ -1389,18 +1389,16 @@ enum ssid_bc_type {
|
||||
* @ssid: ssid
|
||||
* @authentication: authentication type
|
||||
* @encryption: encryption type
|
||||
* @bcastNetwType: broadcast nw type
|
||||
* @ucChannelCount: uc channel count
|
||||
* @aChannels: pno channel
|
||||
* @rssiThreshold: rssi threshold
|
||||
* @bc_new_type: broadcast nw type
|
||||
* @pno_chan_list: pno channel list info
|
||||
* @rssi_thresh: rssi threshold
|
||||
*/
|
||||
struct pno_nw_type {
|
||||
struct wlan_ssid ssid;
|
||||
uint32_t authentication;
|
||||
uint32_t encryption;
|
||||
uint32_t bc_new_type;
|
||||
uint8_t channel_cnt;
|
||||
uint32_t channels[SCAN_PNO_MAX_NETW_CHANNELS_EX];
|
||||
struct chan_list pno_chan_list;
|
||||
int32_t rssi_thresh;
|
||||
};
|
||||
|
||||
@@ -1434,6 +1432,7 @@ struct nlo_mawc_params {
|
||||
|
||||
/**
|
||||
* struct pno_scan_req_params - PNO Scan request structure
|
||||
* @vdev: vdev object
|
||||
* @networks_cnt: Number of networks
|
||||
* @do_passive_scan: Flag to request passive scan to fw
|
||||
* @vdev_id: vdev id
|
||||
@@ -1464,8 +1463,10 @@ struct nlo_mawc_params {
|
||||
* slow_scan_period=1800, scan_backoff_multiplier=2 }
|
||||
* Result: 120s x2, 240s x2, 480s x2, 960s x2, 1800s xN
|
||||
* @mawc_params: Configuration parameters for NLO MAWC.
|
||||
* @scan_policy_colocated_6ghz: colocated_6ghz flag is set in pno scan req
|
||||
*/
|
||||
struct pno_scan_req_params {
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
uint32_t networks_cnt;
|
||||
bool do_passive_scan;
|
||||
uint32_t vdev_id;
|
||||
@@ -1488,6 +1489,7 @@ struct pno_scan_req_params {
|
||||
int8_t relative_rssi;
|
||||
struct cpno_band_rssi_pref band_rssi_pref;
|
||||
struct nlo_mawc_params mawc_params;
|
||||
bool scan_policy_colocated_6ghz;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -105,7 +106,30 @@ wlan_scan_id ucfg_scan_get_scan_id(struct wlan_objmgr_psoc *psoc)
|
||||
* Return: 0 for success or error code.
|
||||
*/
|
||||
QDF_STATUS ucfg_scan_pno_start(struct wlan_objmgr_vdev *vdev,
|
||||
struct pno_scan_req_params *req);
|
||||
struct pno_scan_req_params *req);
|
||||
|
||||
/**
|
||||
* ucfg_scan_pno_add_all_valid_6g_channels() - This API to update all valid 6g
|
||||
* channels to pno scan request
|
||||
* @vdev: vdev pointer
|
||||
* @req: pno req params
|
||||
* @num_scan_ch: total number of channels present in pno scan request
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_scan_pno_add_all_valid_6g_channels(struct wlan_objmgr_vdev *vdev,
|
||||
struct pno_scan_req_params *req,
|
||||
uint8_t *num_scan_ch);
|
||||
|
||||
/**
|
||||
* ucfg_is_6ghz_pno_scan_optimization_supported() - Public API to check
|
||||
* 6ghz pno scan optimization supported in fw
|
||||
* @psoc: psoc object
|
||||
*
|
||||
* Return: 0 for success.
|
||||
*/
|
||||
bool
|
||||
ucfg_is_6ghz_pno_scan_optimization_supported(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_scan_pno_stop() - Public API to stop PNO
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador