mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
qcacld-3.0: Update ini param g_auto_detect_power_failure_mode
Update ini param g_auto_detect_power_failure_mode to incorporate below
values,
0 - Don't register wow wakeup event and FW crashes on power failure
1 - Register wow wakeup event and FW sends failure event to host on
power failure
2 - Don't register wow wakeup event and FW silently rejuvenate on
power failure
3 - Don't register wow wakeup event and the auto power failure detect
feature is disabled in FW.
Change-Id: I8a704954ecbacadbc035c1523fa41a18b6300f66
CRs-Fixed: 2087144
This commit is contained in:
parent
d1dee0e5ee
commit
ab3959506f
7 changed files with 53 additions and 13 deletions
|
|
@ -37,16 +37,31 @@ void pmo_register_wow_wakeup_events(struct wlan_objmgr_vdev *vdev)
|
|||
uint8_t vdev_id;
|
||||
enum tQDF_ADAPTER_MODE vdev_opmode;
|
||||
const char *iface_type;
|
||||
struct pmo_psoc_priv_obj *psoc_ctx;
|
||||
pmo_is_device_in_low_pwr_mode is_low_pwr_mode;
|
||||
|
||||
vdev_opmode = pmo_get_vdev_opmode(vdev);
|
||||
vdev_id = pmo_vdev_get_id(vdev);
|
||||
pmo_info("vdev_opmode %d vdev_id %d", vdev_opmode, vdev_id);
|
||||
|
||||
switch (vdev_opmode) {
|
||||
case QDF_STA_MODE:
|
||||
case QDF_P2P_CLIENT_MODE:
|
||||
/* set power on failure event only for STA and P2P_CLI mode*/
|
||||
psoc_ctx = pmo_vdev_get_psoc_priv(vdev);
|
||||
if (psoc_ctx->psoc_cfg.auto_power_save_fail_mode ==
|
||||
PMO_FW_TO_SEND_WOW_IND_ON_PWR_FAILURE){
|
||||
qdf_spin_lock(&psoc_ctx->lock);
|
||||
is_low_pwr_mode = psoc_ctx->is_device_in_low_pwr_mode;
|
||||
qdf_spin_unlock(&psoc_ctx->lock);
|
||||
if (is_low_pwr_mode && is_low_pwr_mode(vdev_id))
|
||||
pmo_set_wow_event_bitmap(
|
||||
WOW_CHIP_POWER_FAILURE_DETECT_EVENT,
|
||||
PMO_WOW_MAX_EVENT_BM_LEN,
|
||||
event_bitmap);
|
||||
}
|
||||
case QDF_P2P_DEVICE_MODE:
|
||||
case QDF_OCB_MODE:
|
||||
case QDF_STA_MODE:
|
||||
case QDF_MONITOR_MODE:
|
||||
iface_type = "STA";
|
||||
pmo_set_sta_wow_bitmask(event_bitmap, PMO_WOW_MAX_EVENT_BM_LEN);
|
||||
|
|
|
|||
|
|
@ -256,7 +256,8 @@ void pmo_core_configure_dynamic_wake_events(struct wlan_objmgr_psoc *psoc)
|
|||
|
||||
psoc_ctx = pmo_psoc_get_priv(psoc);
|
||||
|
||||
if (psoc_ctx->psoc_cfg.auto_power_save_fail_mode &&
|
||||
if (psoc_ctx->psoc_cfg.auto_power_save_fail_mode ==
|
||||
PMO_FW_TO_SEND_WOW_IND_ON_PWR_FAILURE &&
|
||||
(adapter_type == QDF_STA_MODE ||
|
||||
adapter_type == QDF_P2P_CLIENT_MODE)
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -239,6 +239,24 @@ enum pmo_offload_trigger {
|
|||
pmo_offload_trigger_max,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum pmo_auto_pwr_detect_failure_mode_t - auto detect failure modes
|
||||
* @PMO_FW_TO_CRASH_ON_PWR_FAILURE: Don't register wow wakeup event and FW
|
||||
* crashes on power failure
|
||||
* @PMO_FW_TO_SEND_WOW_IND_ON_PWR_FAILURE: Register wow wakeup event and FW
|
||||
* sends failure event to host on power failure
|
||||
* @PMO_FW_TO_REJUVENATE_ON_PWR_FAILURE: Don't register wow wakeup event and
|
||||
* FW silently rejuvenate on power failure
|
||||
* @PMO_AUTO_PWR_FAILURE_DETECT_DISABLE: Don't register wow wakeup event and the
|
||||
* auto power failure detect feature is disabled in FW.
|
||||
*/
|
||||
enum pmo_auto_pwr_detect_failure_mode {
|
||||
PMO_FW_TO_CRASH_ON_PWR_FAILURE,
|
||||
PMO_FW_TO_SEND_WOW_IND_ON_PWR_FAILURE,
|
||||
PMO_FW_TO_REJUVENATE_ON_PWR_FAILURE,
|
||||
PMO_AUTO_PWR_FAILURE_DETECT_DISABLE
|
||||
};
|
||||
|
||||
/**
|
||||
* struct pmo_psoc_cfg - user configuration required for pmo
|
||||
* @ptrn_match_enable_all_vdev: true when pattern match is enable for all vdev
|
||||
|
|
@ -293,7 +311,7 @@ struct pmo_psoc_cfg {
|
|||
uint8_t sta_mod_dtim;
|
||||
uint8_t sta_max_li_mod_dtim;
|
||||
uint8_t power_save_mode;
|
||||
bool auto_power_save_fail_mode;
|
||||
enum pmo_auto_pwr_detect_failure_mode auto_power_save_fail_mode;
|
||||
};
|
||||
|
||||
#endif /* end of _WLAN_PMO_COMMONP_STRUCT_H_ */
|
||||
|
|
|
|||
Loading…
Reference in a new issue