summaryrefslogtreecommitdiff
path: root/drivers/misc/m4sensorhub_gesture.c
diff options
context:
space:
mode:
authorWengang Wu <wgw@motorola.com>2014-07-23 19:01:06 -0500
committerWengang Wu <wgw@motorola.com>2014-07-23 19:01:06 -0500
commit3ec0e610cc23c072b90c1bde3ff7bc767f6bac8d (patch)
tree5e1da063acd7183666d466bec665467a142b61c6 /drivers/misc/m4sensorhub_gesture.c
parent2394a8ad9dd527633e7220de4cbf307cc5fcc3f2 (diff)
downloadolio-linux-3.10-3ec0e610cc23c072b90c1bde3ff7bc767f6bac8d.tar.xz
olio-linux-3.10-3ec0e610cc23c072b90c1bde3ff7bc767f6bac8d.zip
IKXCLOCK-3122 Smart Ambient: support ambient off gesture
Change-Id: I22622983c50f1d564f40314f92e49646279826f5
Diffstat (limited to 'drivers/misc/m4sensorhub_gesture.c')
-rw-r--r--drivers/misc/m4sensorhub_gesture.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/drivers/misc/m4sensorhub_gesture.c b/drivers/misc/m4sensorhub_gesture.c
index 6ef8daacebc..d5e364ea6c5 100644
--- a/drivers/misc/m4sensorhub_gesture.c
+++ b/drivers/misc/m4sensorhub_gesture.c
@@ -76,18 +76,6 @@ static void m4ges_isr(enum m4sensorhub_irqs int_event, void *handle)
goto m4ges_isr_fail;
}
-#ifdef CONFIG_WAKEUP_SOURCE_NOTIFY
- if (dd->iiodat.gesture_type == GESTURE_WRIST_ROTATE) {
- notify_display_wakeup(GESTURE);
- } else if (dd->iiodat.gesture_type == GESTURE_VIEW) {
- notify_display_wakeup(GESTURE_VIEW);
- /* the GESTURE_VIEW is only effect for kernel now
- * do not send gesture to android
- */
- goto m4ges_isr_fail;
- }
-#endif /* CONFIG_WAKEUP_SOURCE_NOTIFY */
-
size = m4sensorhub_reg_getsize(dd->m4, M4SH_REG_GESTURE_CONFIDENCE1);
err = m4sensorhub_reg_read(dd->m4, M4SH_REG_GESTURE_CONFIDENCE1,
(char *)&(dd->iiodat.gesture_confidence));
@@ -115,6 +103,21 @@ static void m4ges_isr(enum m4sensorhub_irqs int_event, void *handle)
goto m4ges_isr_fail;
}
+#ifdef CONFIG_WAKEUP_SOURCE_NOTIFY
+ if (dd->iiodat.gesture_type == GESTURE_WRIST_ROTATE) {
+ notify_display_wakeup(GESTURE);
+ } else if (dd->iiodat.gesture_type == GESTURE_VIEW) {
+ if (dd->iiodat.gesture_value == GESTURE_VIEW_ON)
+ notify_display_wakeup(GESTURE_VIEWON);
+ else
+ notify_display_wakeup(GESTURE_VIEWOFF);
+ /* the GESTURE_VIEW is only effect for kernel now
+ * do not send gesture to android
+ */
+ goto m4ges_isr_fail;
+ }
+#endif /* CONFIG_WAKEUP_SOURCE_NOTIFY */
+
dd->iiodat.timestamp = iio_get_time_ns();
iio_push_to_buffers(iio, (unsigned char *)&(dd->iiodat));
dd->gesture_count++;