|
@@ -3117,6 +3117,7 @@ void *wmi_unified_attach(void *scn_handle,
|
|
|
|
|
|
qdf_atomic_init(&wmi_handle->pending_cmds);
|
|
|
qdf_atomic_init(&wmi_handle->is_target_suspended);
|
|
|
+ qdf_atomic_init(&wmi_handle->is_target_suspend_acked);
|
|
|
qdf_atomic_init(&wmi_handle->num_stats_over_qmi);
|
|
|
wmi_runtime_pm_init(wmi_handle);
|
|
|
wmi_interface_logging_init(wmi_handle, WMI_HOST_PDEV_ID_0);
|
|
@@ -3515,6 +3516,19 @@ void wmi_set_target_suspend(wmi_unified_t wmi_handle, A_BOOL val)
|
|
|
qdf_atomic_set(&wmi_handle->is_target_suspended, val);
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * wmi_set_target_suspend_acked() - WMI API to set target suspend acked flag
|
|
|
+ *
|
|
|
+ * @wmi_handle: handle to WMI.
|
|
|
+ * @val: target suspend command acked flag.
|
|
|
+ *
|
|
|
+ * @Return: none.
|
|
|
+ */
|
|
|
+void wmi_set_target_suspend_acked(wmi_unified_t wmi_handle, A_BOOL val)
|
|
|
+{
|
|
|
+ qdf_atomic_set(&wmi_handle->is_target_suspend_acked, val);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* wmi_is_target_suspended() - WMI API to check target suspend state
|
|
|
* @wmi_handle: handle to WMI.
|
|
@@ -3529,6 +3543,21 @@ bool wmi_is_target_suspended(struct wmi_unified *wmi_handle)
|
|
|
}
|
|
|
qdf_export_symbol(wmi_is_target_suspended);
|
|
|
|
|
|
+/**
|
|
|
+ * wmi_is_target_suspend_acked() - WMI API to check target suspend command is
|
|
|
+ * acked or not
|
|
|
+ * @wmi_handle: handle to WMI.
|
|
|
+ *
|
|
|
+ * WMI API to check whether the target suspend command is acked or not
|
|
|
+ *
|
|
|
+ * Return: true if target suspend command is acked, else false.
|
|
|
+ */
|
|
|
+bool wmi_is_target_suspend_acked(struct wmi_unified *wmi_handle)
|
|
|
+{
|
|
|
+ return qdf_atomic_read(&wmi_handle->is_target_suspend_acked);
|
|
|
+}
|
|
|
+qdf_export_symbol(wmi_is_target_suspend_acked);
|
|
|
+
|
|
|
#ifdef WLAN_FEATURE_WMI_SEND_RECV_QMI
|
|
|
void wmi_set_qmi_stats(wmi_unified_t wmi_handle, bool val)
|
|
|
{
|