qcacmn: Add support for 6GHz scan priority algorithm

Add support for 6Ghz scan channel list priority algorithm.

Change-Id: I63b0ddf384c4bd62a6a25feb7dfe4f80b5f85fbe
CRs-Fixed: 2564949
This commit is contained in:
Sandeep Puligilla
2019-11-08 14:00:10 -08:00
committed by nshrivas
orang tua 76036f10e7
melakukan d763fee333
5 mengubah file dengan 447 tambahan dan 3 penghapusan

Melihat File

@@ -35,7 +35,7 @@ typedef uint32_t wlan_scan_id;
#define WLAN_SCAN_MAX_HINT_S_SSID 10
#define WLAN_SCAN_MAX_HINT_BSSID 10
#define MAX_RNR_BSS 5
#define MAX_RNR_BSS 5
#define WLAN_SCAN_MAX_NUM_SSID 16
#define WLAN_SCAN_MAX_NUM_BSSID 4
@@ -1470,4 +1470,59 @@ enum ext_cap_bit_field {
OBSS_NARROW_BW_RU_IN_ULOFDMA_TOLERENT_SUPPORT = 79,
};
/**
* scan_rnr_info - RNR information
* @timestamp: time stamp of beacon/probe
* @short_ssid: Short SSID
* @bssid: BSSID
*/
struct scan_rnr_info {
qdf_time_t timestamp;
uint32_t short_ssid;
struct qdf_mac_addr bssid;
};
/**
* struct scan_rnr_node - Scan RNR entry node
* @node: node pointers
* @entry: scan RNR entry pointer
*/
struct scan_rnr_node {
qdf_list_node_t node;
struct scan_rnr_info entry;
};
/**
* meta_rnr_channel - Channel information for scan priority algorithm
* @chan_freq: channel frequency
* @bss_beacon_probe_count: Beacon and probe request count
* @saved_profile_count: Saved profile count
* @beacon_probe_last_time_found: Timestamp of beacon/probe observed
* @rnr_list: RNR list to store RNR IE information
*/
struct meta_rnr_channel {
uint32_t chan_freq;
uint32_t bss_beacon_probe_count;
uint32_t saved_profile_count;
qdf_time_t beacon_probe_last_time_found;
qdf_list_t rnr_list;
};
/**
* channel_list_db - Database for channel information
* @channel: channel meta information
*/
struct channel_list_db {
struct meta_rnr_channel channel[NUM_6GHZ_CHANNELS];
};
/**
* rnr_chan_weight - RNR channel weightage
* @chan_freq: channel frequency
* @weight: weightage of the channel
*/
struct rnr_chan_weight {
uint32_t chan_freq;
uint32_t weight;
};
#endif

Melihat File

@@ -1643,6 +1643,7 @@ ucfg_scan_psoc_open(struct wlan_objmgr_psoc *psoc)
qdf_spinlock_create(&scan_obj->lock);
ucfg_scan_register_pmo_handler();
scm_db_init(psoc);
scm_channel_list_db_init(psoc);
return QDF_STATUS_SUCCESS;
}
@@ -1666,6 +1667,7 @@ ucfg_scan_psoc_close(struct wlan_objmgr_psoc *psoc)
ucfg_scan_unregister_pmo_handler();
qdf_spinlock_destroy(&scan_obj->lock);
wlan_scan_global_deinit(psoc);
scm_channel_list_db_deinit(psoc);
return QDF_STATUS_SUCCESS;
}