qcacld-3.0: Send idle roam trigger monitor command to firmware

Send idle roam trigger monitor command to firmware based on
the SET SUSPEND mode command received from the user space.
The set suspend mode value sent will be used by firmware as
one of the parameters in determining if the device is in
idle state. When set suspend mode is 1, device is not in
idle state else the device is considered idle if idle state
data packet count, idle rssi, inactivity time criteria are met.

Add changes to send the suspend mode value over the wmi
command WMI_IDLE_TRIGGER_MONITOR_CMDID.

Change-Id: Ia4531fdab140334dbb830e0d7486db07bbdfc7e8
CRs-Fixed: 2436221
This commit is contained in:
Pragaspathi Thilagaraj
2019-04-16 02:47:50 +05:30
committed by nshrivas
parent 0332a6ca4a
commit aa8320e1c6
9 changed files with 117 additions and 2 deletions

View File

@@ -469,6 +469,17 @@ QDF_STATUS target_if_pmo_psoc_send_d0wow_enable_req(
QDF_STATUS target_if_pmo_psoc_send_d0wow_disable_req(
struct wlan_objmgr_psoc *psoc);
/**
* target_if_pmo_psoc_send_idle_monitor_cmd() - send screen status to firmware
* @psoc: objmgr psoc
* @val: Idle monitor value
*
* Return: QDF_STATUS_SUCCESS on success else error code
*/
QDF_STATUS
target_if_pmo_psoc_send_idle_monitor_cmd(struct wlan_objmgr_psoc *psoc,
uint8_t val);
/**
* target_if_pmo_register_tx_ops() - Register PMO component TX OPS
* @tx_ops: PMO if transmit ops

View File

@@ -121,6 +121,8 @@ void target_if_pmo_register_tx_ops(struct wlan_pmo_tx_ops *pmo_tx_ops)
target_if_pmo_psoc_send_d0wow_enable_req;
pmo_tx_ops->psoc_send_d0wow_disable_req =
target_if_pmo_psoc_send_d0wow_disable_req;
pmo_tx_ops->psoc_send_idle_roam_suspend_mode =
target_if_pmo_psoc_send_idle_monitor_cmd;
tgt_if_pmo_reg_pkt_filter_ops(pmo_tx_ops);
}

View File

@@ -291,6 +291,21 @@ QDF_STATUS target_if_pmo_psoc_send_target_resume_req(
return wmi_unified_resume_send(wmi_handle, TGT_WILDCARD_PDEV_ID);
}
QDF_STATUS
target_if_pmo_psoc_send_idle_monitor_cmd(struct wlan_objmgr_psoc *psoc,
uint8_t val)
{
wmi_unified_t wmi_handle;
wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
if (!wmi_handle) {
target_if_err("Invalid wmi handle");
return QDF_STATUS_E_INVAL;
}
return wmi_unified_send_idle_trigger_monitor(wmi_handle, val);
}
#ifdef FEATURE_WLAN_D0WOW
QDF_STATUS target_if_pmo_psoc_send_d0wow_enable_req(
struct wlan_objmgr_psoc *psoc)