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:
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user