qcacmn: Add support to enable/disable scan with reason code

Adds support to enable/disable scan for psoc/vdev with reason,
so that multiple clients can enable/disable the scan at same time.

Scan will remain disabled till all clients enable it back.

Change-Id: I8d840b24210095accb56ac9a2697ec26e8a5eb17
CRs-Fixed: 2362093
This commit is contained in:
Abhishek Singh
2018-11-21 14:34:49 +05:30
committed by nshrivas
szülő ad2b2af274
commit 502095b236
6 fájl változott, egészen pontosan 161 új sor hozzáadva és 92 régi sor törölve

Fájl megtekintése

@@ -577,6 +577,19 @@ struct scan_filter {
struct qdf_mac_addr bssid_hint;
};
/**
* enum scan_disable_reason - scan enable/disable reason
* @REASON_SUSPEND: reason is suspend
* @REASON_SYSTEM_DOWN: reason is system going down
* @REASON_USER_SPACE: reason is user space initiated
* @REASON_VDEV_DOWN: reason is vdev going down
*/
enum scan_disable_reason {
REASON_SUSPEND = 0x1,
REASON_SYSTEM_DOWN = 0x2,
REASON_USER_SPACE = 0x4,
REASON_VDEV_DOWN = 0x8,
};
/**
* enum scan_priority - scan priority definitions

Fájl megtekintése

@@ -174,21 +174,46 @@ QDF_STATUS
ucfg_scan_start(struct scan_start_request *req);
/**
* ucfg_scan_set_enable() - Public API to disable/enable scans
* ucfg_scan_set_psoc_enable() - Public API to enable scans for psoc
* @psoc: psoc on which scans need to be disabled
* @enable: enable scan if true disable is false
* @reason: reason for enable/disabled
*
* Return: QDF_STATUS.
*/
QDF_STATUS ucfg_scan_set_enable(struct wlan_objmgr_psoc *psoc, bool enable);
QDF_STATUS ucfg_scan_psoc_set_enable(struct wlan_objmgr_psoc *psoc,
enum scan_disable_reason reason);
/**
* ucfg_scan_get_enable() - Public API to get if scan is enabled or disabled
* @psoc: psoc on which scans status need to be checked
* ucfg_scan_psoc_set_disable() - Public API to disable scans for psoc
* @psoc: psoc on which scans need to be disabled
* @reason: reason for enable/disabled
*
* Return: true if enabled else false.
* Return: QDF_STATUS.
*/
bool ucfg_scan_get_enable(struct wlan_objmgr_psoc *psoc);
QDF_STATUS ucfg_scan_psoc_set_disable(struct wlan_objmgr_psoc *psoc,
enum scan_disable_reason reason);
/**
* ucfg_scan_vdev_set_enable() - Public API to enable scans for vdev
* @psoc: psoc on which scans need to be disabled
* @reason: reason for enable/disabled
*
* Return: QDF_STATUS.
*/
QDF_STATUS ucfg_scan_vdev_set_enable(struct wlan_objmgr_vdev *vdev,
enum scan_disable_reason reason);
/**
* ucfg_scan_vdev_set_disable() - Public API to disable scans for vdev
* @psoc: psoc on which scans need to be disabled
* @reason: reason for enable/disabled
*
* Return: QDF_STATUS.
*/
QDF_STATUS ucfg_scan_vdev_set_disable(struct wlan_objmgr_vdev *vdev,
enum scan_disable_reason reason);
/**
* ucfg_scan_set_miracast() - Public API to disable/enable miracast flag
@@ -614,21 +639,6 @@ void ucfg_scan_set_bt_activity(struct wlan_objmgr_psoc *psoc,
*/
bool ucfg_scan_get_bt_activity(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_scan_set_vdev_del_in_progress() - API to mark vdev delete in progress
* @vdev: pointer to vdev object
*
* Return: none
*/
void ucfg_scan_set_vdev_del_in_progress(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_scan_clear_vdev_del_in_progress() - API to reset vdev delete in progress
* @vdev: pointer to vdev object
*
* Return: none
*/
void ucfg_scan_clear_vdev_del_in_progress(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_scan_cfg_set_active_dwelltime() - API to set scan active dwelltime
* @psoc: pointer to psoc object