summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorFrank Luo <luofrank@google.com>2018-11-20 15:33:34 +0800
committerGeorg Veichtlbauer <georg@vware.at>2023-07-16 13:06:51 +0200
commit997b726bc092e29a9c6bf5f8925c98defc69a6cd (patch)
tree5374dfb307068413ea1a9113d1938acaf9ee22e8 /kernel
parentb933e4d37bc023d27c7394626669bae0a201da52 (diff)
kernel: power: Workaround for sensor ipc message causing high power consume
Sync from Qcom's document KBA-180725024109 To avoid the non-wakeup type sensor data break the AP sleep flow, notify sensor subsystem in the first place of pm_suspend . Bug: 118418963 Test: measure power consumption after running test case Change-Id: I2848230d495e30ac462aef148b3f885103d9c24e Signed-off-by: Frank Luo <luofrank@google.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/power/suspend.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 6e7832ee6d74..18c322fe8b73 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -34,6 +34,10 @@
#include "power.h"
+#include <linux/gpio.h>
+extern int slst_gpio_base_id;
+#define PROC_AWAKE_ID 12 /* 12th bit */
+
const char *pm_labels[] = { "mem", "standby", "freeze", NULL };
const char *pm_states[PM_SUSPEND_MAX];
@@ -563,7 +567,9 @@ int pm_suspend(suspend_state_t state)
return -EINVAL;
pm_suspend_marker("entry");
+ gpio_set_value(slst_gpio_base_id + PROC_AWAKE_ID, 0);
error = enter_state(state);
+ gpio_set_value(slst_gpio_base_id + PROC_AWAKE_ID, 1);
if (error) {
suspend_stats.fail++;
dpm_save_failed_errno(error);