From b66fe63ea9d50a1049d9142559121d16f86db9eb Mon Sep 17 00:00:00 2001 From: sravan Date: Thu, 6 Aug 2015 12:17:22 -0700 Subject: fixing suspend blocking from fifo irq wakelock Signed-off-by: mattis fjallstrom Change-Id: I01ed81a3463ffda1cf0bb9dace028aa8c28fb8dc --- drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c') diff --git a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c index 5e20cc722e8..a2df1d2990b 100644 --- a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c +++ b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c @@ -106,15 +106,12 @@ static void st_lsm6ds3_irq_management(struct work_struct *data_work) cdata = container_of((struct work_struct *)data_work, struct lsm6ds3_data, data_work); - if(cdata->first_irq_from_resume && last_wakeup_reason_test(cdata->irq)){ + //take_wake_lock to give app enough time from wakeup woken_from_sleep = 1; + wake_lock_timeout(&cdata->wlock,msecs_to_jiffies(1000)); } - if(!wake_lock_active(&cdata->wlock)) - wake_lock(&cdata->wlock); - - mutex_lock(&cdata->fifo_lock); cdata->tf->read(cdata, ST_LSM6DS3_6D_SRC_ADDR, 1, &d6d_src_reg, true); @@ -225,8 +222,6 @@ static void st_lsm6ds3_irq_management(struct work_struct *data_work) } enable_irq(cdata->irq); mutex_unlock(&cdata->fifo_lock); - if(wake_lock_active(&cdata->wlock)) - wake_unlock(&cdata->wlock); cdata->first_irq_from_resume = 0; return; -- cgit v1.2.3-70-g09d2