mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
qcacld-3.0: Add support to configure ito repeat count
Currently there is no support to configure ito repeat count when driver enters into wow mode. Add support to configure ito repeat count with ini gItoRepeatCount when driver enters into wow mode. CRs-fixed: 2419137 Change-Id: I62d7e7df12342e9743c26e0147851347214a9ce7
This commit is contained in:
parent
00d2dc0cb8
commit
16fd4201f9
4 changed files with 29 additions and 0 deletions
|
|
@ -209,6 +209,7 @@ static void wlan_pmo_init_cfg(struct wlan_objmgr_psoc *psoc,
|
|||
cfg_get(psoc, CFG_ACTIVE_UC_APF_MODE);
|
||||
psoc_cfg->active_mc_bc_apf_mode =
|
||||
cfg_get(psoc, CFG_ACTIVE_MC_BC_APF_MODE);
|
||||
psoc_cfg->ito_repeat_count = cfg_get(psoc, CFG_ITO_REPEAT_COUNT);
|
||||
wlan_pmo_ra_filtering_init_cfg(psoc, psoc_cfg);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -170,6 +170,8 @@ static void pmo_configure_vdev_suspend_params(
|
|||
uint8_t vdev_id;
|
||||
enum QDF_OPMODE opmode = pmo_core_get_vdev_op_mode(vdev);
|
||||
struct pmo_psoc_cfg *psoc_cfg = &vdev_ctx->pmo_psoc_ctx->psoc_cfg;
|
||||
uint8_t ito_repeat_count_value = 0;
|
||||
uint32_t non_wow_inactivity_time, wow_inactivity_time;
|
||||
|
||||
pmo_enter();
|
||||
|
||||
|
|
@ -185,6 +187,25 @@ static void pmo_configure_vdev_suspend_params(
|
|||
vdev_id);
|
||||
}
|
||||
|
||||
non_wow_inactivity_time = psoc_cfg->ps_data_inactivity_timeout;
|
||||
wow_inactivity_time = psoc_cfg->wow_data_inactivity_timeout;
|
||||
/*
|
||||
* To keep ito repeat count same in wow mode as in non wow mode,
|
||||
* modulating ito repeat count value.
|
||||
*/
|
||||
ito_repeat_count_value = (non_wow_inactivity_time /
|
||||
wow_inactivity_time) *
|
||||
psoc_cfg->ito_repeat_count;
|
||||
if (ito_repeat_count_value)
|
||||
ret = pmo_tgt_vdev_update_param_req(
|
||||
vdev,
|
||||
pmo_vdev_param_ito_repeat_count,
|
||||
psoc_cfg->wow_data_inactivity_timeout);
|
||||
if (QDF_IS_STATUS_ERROR(ret)) {
|
||||
pmo_err("Failed to Set ito repeat count vdevId %d",
|
||||
vdev_id);
|
||||
}
|
||||
|
||||
pmo_exit();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -64,11 +64,13 @@
|
|||
* @pmo_vdev_param_dtim_policy: vdev param dtim policy
|
||||
* @pmo_vdev_max_param: Max vdev param id
|
||||
* @pmo_vdev_param_inactivity_time: inactivity time value
|
||||
* @pmo_vdev_param_ito_repeat_count: Indicates ito repeated count
|
||||
*/
|
||||
enum pmo_vdev_param_id {
|
||||
pmo_vdev_param_listen_interval = 0,
|
||||
pmo_vdev_param_dtim_policy,
|
||||
pmo_vdev_param_inactivity_time,
|
||||
pmo_vdev_param_ito_repeat_count,
|
||||
pmo_vdev_max_param
|
||||
};
|
||||
|
||||
|
|
@ -347,6 +349,7 @@ enum active_apf_mode {
|
|||
* mode for uc packets
|
||||
* @active_mc_bc_apf_mode: Setting that determines how APF is applied in
|
||||
* active mode for MC/BC packets
|
||||
* @ito_repeat_count: Indicates ito repeated count
|
||||
*/
|
||||
struct pmo_psoc_cfg {
|
||||
bool ptrn_match_enable_all_vdev;
|
||||
|
|
@ -408,6 +411,7 @@ struct pmo_psoc_cfg {
|
|||
uint8_t ps_data_inactivity_timeout;
|
||||
enum active_apf_mode active_uc_apf_mode;
|
||||
enum active_apf_mode active_mc_bc_apf_mode;
|
||||
uint8_t ito_repeat_count;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -60,6 +60,9 @@ QDF_STATUS target_if_pmo_send_vdev_update_param_req(
|
|||
case pmo_vdev_param_inactivity_time:
|
||||
param_id = WMI_STA_PS_PARAM_INACTIVITY_TIME;
|
||||
break;
|
||||
case pmo_vdev_param_ito_repeat_count:
|
||||
param_id = WMI_STA_PS_PARAM_MAX_RESET_ITO_COUNT_ON_TIM_NO_TXRX;
|
||||
break;
|
||||
default:
|
||||
target_if_err("invalid vdev param id %d", param_id);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
|
|
|||
Loading…
Reference in a new issue