qcacld-3.0: Add changes to send WMI_CHAN_LIST_CMD in connection mgr

Add changes to send WMI_CHAN_LIST_CMD in connection mgr

Change-Id: I79f96c400314be4e8a0b1aad5ecfe04e638d552d
CRs-Fixed: 2768812
Цей коміт міститься в:
Pragaspathi Thilagaraj
2020-09-02 22:31:41 +05:30
зафіксовано snandini
джерело 571fda61f9
коміт 36907e74d5
8 змінених файлів з 558 додано та 18 видалено

Переглянути файл

@@ -816,6 +816,7 @@ cm_roam_switch_to_deinit(struct wlan_objmgr_pdev *pdev,
QDF_STATUS status;
struct wlan_objmgr_psoc *psoc = wlan_pdev_get_psoc(pdev);
enum roam_offload_state cur_state = mlme_get_roam_state(psoc, vdev_id);
bool sup_disabled_roam;
cm_roam_roam_invoke_in_progress(psoc, vdev_id, false);
@@ -830,6 +831,27 @@ cm_roam_switch_to_deinit(struct wlan_objmgr_pdev *pdev,
cm_roam_switch_to_rso_stop(pdev, vdev_id, reason);
break;
case WLAN_ROAM_RSO_STOPPED:
/*
* When Supplicant disabled roaming is set and roam invoke
* command is received from userspace, fw starts to roam.
* But meanwhile if a disassoc/deauth is received from AP or if
* NB disconnect is initiated while supplicant disabled roam,
* RSO stop with ROAM scan mode as 0 is not sent to firmware
* since the previous state was RSO_STOPPED. This could lead
* to firmware not sending peer unmap event for the current
* AP. To avoid this, if previous RSO stop was sent with
* ROAM scan mode as 4, send RSO stop with Roam scan mode as 0
* and then switch to ROAM_DEINIT.
*/
sup_disabled_roam =
mlme_get_supplicant_disabled_roaming(psoc,
vdev_id);
if (sup_disabled_roam) {
mlme_err("vdev[%d]: supplicant disabled roam. clear roam scan mode",
vdev_id);
cm_roam_switch_to_rso_stop(pdev, vdev_id, reason);
}
case WLAN_ROAM_INIT:
break;

Переглянути файл

@@ -1005,6 +1005,22 @@ struct wlan_roam_scan_period_params {
uint32_t roam_scan_period_after_inactivity;
uint32_t full_scan_period;
};
#define ROAM_MAX_CHANNELS 80
/**
* wlan_roam_scan_channel_list - Roam Scan channel list related
* parameters
* @vdev_id: Vdev id
* @chan_count: Channel count
* @chan_freq_list: Frequency list pointer
* @chan_cache_type: Static or dynamic channel cache
*/
struct wlan_roam_scan_channel_list {
uint32_t vdev_id;
uint8_t chan_count;
uint32_t chan_freq_list[ROAM_MAX_CHANNELS];
uint8_t chan_cache_type;
};
#endif
/**
@@ -1034,6 +1050,7 @@ struct wlan_roam_rssi_change_params {
* @scan_period_params: roam scan period parameters
* @rssi_change_params: Roam offload RSSI change parameters
* @profile_params: ap profile parameters
* @rso_chan_info: Roam scan channel list parameters
* @mawc_params: mawc parameters
* @scan_filter_params: roam scan filter parameters
* @btm_config: btm configuration
@@ -1051,6 +1068,7 @@ struct wlan_roam_start_config {
struct wlan_roam_scan_offload_params rso_config;
struct wlan_roam_rssi_change_params rssi_change_params;
struct ap_profile_params profile_params;
struct wlan_roam_scan_channel_list rso_chan_info;
struct wlan_roam_mawc_params mawc_params;
struct wlan_roam_scan_filter_params scan_filter_params;
struct wlan_roam_btm_config btm_config;
@@ -1097,6 +1115,7 @@ struct wlan_roam_stop_config {
* @rssi_change_params: roam scan rssi change parameters
* @rso_config: roam scan mode configurations
* @profile_params: ap profile parameters
* @rso_chan_info: Roam scan channel list parameters
* @rssi_params: roam scan rssi threshold parameters
* @disconnect_params: disconnect params
* @idle_params: idle params
@@ -1109,6 +1128,7 @@ struct wlan_roam_update_config {
struct wlan_roam_rssi_change_params rssi_change_params;
struct wlan_roam_scan_offload_params rso_config;
struct ap_profile_params profile_params;
struct wlan_roam_scan_channel_list rso_chan_info;
struct wlan_roam_offload_scan_rssi_params rssi_params;
struct wlan_roam_disconnect_params disconnect_params;
struct wlan_roam_idle_params idle_params;