mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-26 06:33:19 -04:00
qcacmn: Add 11d scan as wakeup event
11d scan is scheduled every one hour.The HOST can be asleep when new country is found. So add 11d scan as wakeup event. Change-Id: I495c010b9c1224ab17fc0b082292befaa6b4f1e8 CRs-Fixed: 2057841
This commit is contained in:
parent
c846868cd8
commit
4decc31941
5 changed files with 36 additions and 0 deletions
|
|
@ -25,6 +25,8 @@
|
|||
#include "wlan_pmo_obj_mgmt_public_struct.h"
|
||||
#include <wlan_scan_ucfg_api.h>
|
||||
#include "wlan_pmo_static_config.h"
|
||||
#include "wlan_reg_services_api.h"
|
||||
|
||||
|
||||
static inline int pmo_find_wow_ptrn_len(const char *ptrn)
|
||||
{
|
||||
|
|
@ -199,6 +201,10 @@ bool pmo_core_is_wow_applicable(struct wlan_objmgr_psoc *psoc)
|
|||
return true;
|
||||
}
|
||||
|
||||
if (wlan_reg_is_11d_scan_inprogress(psoc)) {
|
||||
pmo_debug("11d scan is in progress, enabling wow");
|
||||
return true;
|
||||
}
|
||||
/* Iterate through VDEV list */
|
||||
for (vdev_id = 0; vdev_id < WLAN_UMAC_PSOC_MAX_VDEVS; vdev_id++) {
|
||||
vdev = pmo_psoc_get_vdev(psoc, vdev_id);
|
||||
|
|
|
|||
|
|
@ -2008,6 +2008,7 @@ QDF_STATUS wlan_regulatory_psoc_obj_created_notification(
|
|||
soc_reg_obj->dfs_enabled = true;
|
||||
soc_reg_obj->set_fcc_channel = false;
|
||||
soc_reg_obj->band_capability = BAND_ALL;
|
||||
soc_reg_obj->enable_11d_supp = false;
|
||||
soc_reg_obj->indoor_chan_enabled = true;
|
||||
soc_reg_obj->master_vdev_cnt = 0;
|
||||
soc_reg_obj->vdev_cnt_11d = 0;
|
||||
|
|
@ -2922,6 +2923,21 @@ QDF_STATUS reg_program_chan_list(struct wlan_objmgr_psoc *psoc,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
bool reg_is_11d_scan_inprogress(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct wlan_regulatory_psoc_priv_obj *psoc_priv_obj;
|
||||
|
||||
psoc_priv_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
|
||||
WLAN_UMAC_COMP_REGULATORY);
|
||||
|
||||
if (!psoc_priv_obj) {
|
||||
reg_err("reg psoc private obj is NULL");
|
||||
return false;
|
||||
}
|
||||
|
||||
return psoc_priv_obj->enable_11d_supp;
|
||||
}
|
||||
|
||||
QDF_STATUS reg_get_current_cc(struct wlan_objmgr_psoc *psoc,
|
||||
struct cc_regdmn_s *rd)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -318,6 +318,8 @@ struct chan_change_cbk_entry {
|
|||
void *arg;
|
||||
};
|
||||
|
||||
bool reg_is_11d_scan_inprogress(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
enum country_src reg_get_cc_and_src(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t *alpha2);
|
||||
|
||||
|
|
|
|||
|
|
@ -386,6 +386,13 @@ bool wlan_reg_11d_enabled_on_host(struct wlan_objmgr_psoc *psoc);
|
|||
QDF_STATUS wlan_reg_get_chip_mode(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t *chip_mode);
|
||||
|
||||
/**
|
||||
* wlan_reg_is_11d_scan_inprogress() - checks 11d scan status
|
||||
* @psoc: psoc ptr
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
bool wlan_reg_is_11d_scan_inprogress(struct wlan_objmgr_psoc *psoc);
|
||||
/**
|
||||
* wlan_reg_get_freq_range() - Get 2GHz and 5GHz frequency range
|
||||
* @pdev: pdev pointer
|
||||
|
|
|
|||
|
|
@ -452,6 +452,11 @@ QDF_STATUS wlan_reg_get_chip_mode(struct wlan_objmgr_pdev *pdev,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
bool wlan_reg_is_11d_scan_inprogress(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return reg_is_11d_scan_inprogress(psoc);
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_reg_get_freq_range(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t *low_2g,
|
||||
uint32_t *high_2g,
|
||||
|
|
|
|||
Loading…
Reference in a new issue