diff options
| author | Wengang Wu <wgw@motorola.com> | 2014-07-18 14:13:59 -0500 |
|---|---|---|
| committer | Wengang Wu <wgw@motorola.com> | 2014-07-18 14:13:59 -0500 |
| commit | 5be4e5b903e884f4431ccb750b5c027df47f74db (patch) | |
| tree | 68d630cea96785dc44b1014a5b69d0135ac67389 /drivers/misc/m4sensorhub_gesture.c | |
| parent | 0e4a00c83a912944beed3d2d36915278a0d418f7 (diff) | |
| download | olio-linux-3.10-5be4e5b903e884f4431ccb750b5c027df47f74db.tar.xz olio-linux-3.10-5be4e5b903e884f4431ccb750b5c027df47f74db.zip | |
IKXCLOCK-2896 Display: support ambient mode timeout
Change-Id: I28422cfbfefb03671ad6868eb87a828481982a9c
Diffstat (limited to 'drivers/misc/m4sensorhub_gesture.c')
| -rw-r--r-- | drivers/misc/m4sensorhub_gesture.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/misc/m4sensorhub_gesture.c b/drivers/misc/m4sensorhub_gesture.c index 51b6a222519..5257ab439d1 100644 --- a/drivers/misc/m4sensorhub_gesture.c +++ b/drivers/misc/m4sensorhub_gesture.c @@ -34,6 +34,7 @@ #include <linux/iio/buffer.h> #include <linux/iio/kfifo_buf.h> #include <linux/iio/m4sensorhub/m4sensorhub_gesture.h> +#include <linux/m4sensorhub/MemMapGesture.h> #include <linux/wakeup_source_notify.h> #define m4ges_err(format, args...) KDEBUG(M4SH_ERROR, format, ## args) @@ -74,6 +75,18 @@ 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)); @@ -103,9 +116,6 @@ static void m4ges_isr(enum m4sensorhub_irqs int_event, void *handle) dd->iiodat.timestamp = iio_get_time_ns(); iio_push_to_buffers(iio, (unsigned char *)&(dd->iiodat)); -#ifdef CONFIG_WAKEUP_SOURCE_NOTIFY - wakeup_source_notify_subscriber(DISPLAY_WAKE_EVENT); -#endif /* CONFIG_WAKEUP_SOURCE_NOTIFY */ m4ges_isr_fail: if (err < 0) |