summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2018-06-21 17:20:32 +0200
committerchrome-bot <chrome-bot@chromium.org>2018-07-10 09:45:55 -0700
commit8948d52feed5514d5fbb69a20af6641f2c40a03f (patch)
tree5ecd8384d794f8d1029c3173be2fe78d8699ea5f
parentba4c0cf0558bc6966c4c7f358fbeb5b87c2e8745 (diff)
downloadchrome-ec-8948d52feed5514d5fbb69a20af6641f2c40a03f.tar.gz
fpsensor: put the sensor in low power mode when not used
Ensure we always put back the sensor in its lowest power mode when we are no longer waiting for an event from it (e.g. finger detection). Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=poppy BUG=b:110498334 TEST=On ZerbleBarn, measure the power consumption with 'dut-control pp1800_fpc_ma' and verify it stays even after running fpcapture/fpenroll/fpmatch console or host commands. TEST=On Meowth, verify that enrollment and unlock-on-match still work. Change-Id: Iad2950d7ed15c536b9f2adff3e1f3df6b92c8d2c Reviewed-on: https://chromium-review.googlesource.com/1125062 Commit-Ready: Nicolas Boichat <drinkcat@chromium.org> Tested-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
-rw-r--r--common/fpsensor.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/common/fpsensor.c b/common/fpsensor.c
index 85ca1f1e9c..f37fafa8c7 100644
--- a/common/fpsensor.c
+++ b/common/fpsensor.c
@@ -236,6 +236,8 @@ void fp_task(void)
timeout_us = -1;
if (mode & FP_MODE_ANY_WAIT_IRQ)
gpio_enable_interrupt(GPIO_FPS_INT);
+ else
+ fp_sensor_low_power();
} else if (evt & (TASK_EVENT_SENSOR_IRQ | TASK_EVENT_TIMER)) {
gpio_disable_interrupt(GPIO_FPS_INT);
if (sensor_mode & FP_MODE_ANY_DETECT_FINGER) {
@@ -261,6 +263,8 @@ void fp_task(void)
if (sensor_mode & FP_MODE_ANY_WAIT_IRQ) {
fp_sensor_configure_detect();
gpio_enable_interrupt(GPIO_FPS_INT);
+ } else {
+ fp_sensor_low_power();
}
}
}