summaryrefslogtreecommitdiff
path: root/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c')
-rw-r--r--drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c21
1 files changed, 2 insertions, 19 deletions
diff --git a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c
index a97a5da517c..15eff9445f9 100644
--- a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c
+++ b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c
@@ -146,13 +146,11 @@ static void st_lsm6ds3_irq_management(struct work_struct *data_work)
u8 src_value = 0x00, src_fifo = 0x00;
u8 d6d_event = 0;
u8 tap_event = 0;
- int wake_irq;
int ignore_event = 0;
cdata = container_of((struct work_struct *)data_work,
struct lsm6ds3_data, data_work);
- wake_irq = last_wakeup_reason_test(cdata->irq);
mutex_lock(&cdata->fifo_lock);
cdata->tf->read(cdata, ST_LSM6DS3_6D_SRC_ADDR, 1, &d6d_src_reg, true);
cdata->tf->read(cdata, ST_LSM6DS3_TAP_SRC_ADDR, 1, &tap_src_reg, true);
@@ -160,9 +158,6 @@ static void st_lsm6ds3_irq_management(struct work_struct *data_work)
cdata->tf->read(cdata, ST_LSM6DS3_FIFO_DATA_AVL_ADDR, 1,
&src_fifo, true);
- dev_dbg(cdata->dev, "ST irq start :src_value, 6d, tap:%x %x %x",
- src_value, d6d_src_reg, tap_src_reg);
-
if(d6d_src_reg & ST_LSM6DS3_6D_SRC_DETECTED_MASK){
#ifdef WAKE_STATS_DEBUG_INFO
update_orient_stats(d6d_src_reg, cdata->timestamp);
@@ -191,21 +186,9 @@ static void st_lsm6ds3_irq_management(struct work_struct *data_work)
dev_info(cdata->dev, "Ignoring tap");
}
}
-
- if(cdata->first_irq_from_resume && wake_irq){
-#ifdef WAKE_STATS_DEBUG_INFO
- wakeup_irq_count++;
-#endif
- if(!d6d_event && !tap_event && !ignore_event){
- dev_info(cdata->dev, "No event from first resume, assuming lost TAP");
- tap_event = 1;
- cdata->last_wakeup_source |= LSM6DS3_WAKEUP_TAP;
- dev_info(cdata->dev, "Valid Tap from sleep");
- }
- }
if(!ignore_event && (tap_event || d6d_event) && cdata->first_irq_from_resume){
- wake_lock_timeout(&cdata->tap_wlock,msecs_to_jiffies(1000));
+ wake_lock_timeout(&cdata->tap_wlock,msecs_to_jiffies(750));
#ifdef WAKE_STATS_DEBUG_INFO
wakeup_irq_stayawake_count++;
#endif
@@ -214,7 +197,7 @@ static void st_lsm6ds3_irq_management(struct work_struct *data_work)
}
}
else if(d6d_event && !ignore_event) { //negative roll
- wake_lock_timeout(&cdata->tap_wlock,msecs_to_jiffies(600));
+ wake_lock_timeout(&cdata->tap_wlock,msecs_to_jiffies(400));
#ifdef WAKE_STATS_DEBUG_INFO
wakeup_irq_keepawake_count++;
#endif