summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Wilson <evan@oliodevices.com>2016-04-19 18:28:36 -0700
committerEvan Wilson <evan@oliodevices.com>2016-04-19 18:28:36 -0700
commit3ac52dc5b41a29ca68713ff15655836299152f5a (patch)
tree134d2d0ac78e8ebb74bdce9b75621a98e963876a
parent07957bd97bf8ac4b079f3bb56f80a0ef534fb743 (diff)
downloadolio-linux-3.10-3ac52dc5b41a29ca68713ff15655836299152f5a.tar.xz
olio-linux-3.10-3ac52dc5b41a29ca68713ff15655836299152f5a.zip
Cleaning up suspend_again
Change-Id: I5df382248ea1be518c5133a9f57edf0bcc7d9377
-rw-r--r--arch/arm/mach-omap2/pm.c7
-rw-r--r--drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c59
2 files changed, 10 insertions, 56 deletions
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
index a119cbe9e7f..eca78e41f54 100644
--- a/arch/arm/mach-omap2/pm.c
+++ b/arch/arm/mach-omap2/pm.c
@@ -272,13 +272,6 @@ static const struct platform_suspend_ops omap_pm_ops = {
.suspend_again = omap_suspend_again
};
-
-
-DECLARE_WAIT_QUEUE_HEAD(wq_susp_again);
-DEFINE_MUTEX(susp_again_decision_mutex);
-#define NO_DECISION 3
-static int accel_should_suspend = NO_DECISION;
-
#endif /* CONFIG_SUSPEND */
static void __init omap3_init_voltages(void)
diff --git a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c
index 6fe42ec20fb..08038b4821e 100644
--- a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c
+++ b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c
@@ -72,58 +72,34 @@ irqreturn_t st_lsm6ds3_save_timestamp(int irq, void *private)
void st_lsm6ds3_set_wake_triggers(struct lsm6ds3_data* cdata)
{
- u8 d6d_src_reg = 0x00, tap_src_reg = 0x00, func_src_reg = 0x00, wake_up_src_reg = 0x00;
- u8 d6d_event = 0;
- u8 tap_event = 0;
- int wake_irq;
- int ignore_event = 0;
-
- wake_irq = last_wakeup_reason_test(cdata->irq);
- // if not the proper wakeup irq, don't set wake trigger
- if(!wake_irq) {
- return;
- }
+ u8 d6d_src_reg = 0x00, tap_src_reg = 0x00, func_src_reg = 0x00;
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);
cdata->tf->read(cdata, ST_LSM6DS3_SRC_FUNC_ADDR, 1, &func_src_reg, true);
- cdata->tf->read(cdata, 0x1b, 1, &wake_up_src_reg, true);
- dev_info(cdata->dev, "ST irq start: src_value: 0x%x, 6d: 0x%x, tap: 0x%x, wakeup: 0x%x",
- func_src_reg, d6d_src_reg, tap_src_reg, wake_up_src_reg);
+// cdata->tf->read(cdata, 0x1b, 1, &wake_up_src_reg, true);
+// dev_info(cdata->dev, "ST irq start: src_value: 0x%x, 6d: 0x%x, tap: 0x%x, wakeup: 0x%x",
+// func_src_reg, d6d_src_reg, tap_src_reg, wake_up_src_reg);
if(d6d_src_reg & ST_LSM6DS3_6D_SRC_DETECTED_MASK){
- dev_info(cdata->dev, "D6D IRQ val:0x%x mask:0x%x",
- SIXD_MASK_VALID_BITS & d6d_src_reg, cdata->sixd_mask);
+// dev_info(cdata->dev, "D6D IRQ val:0x%x mask:0x%x",
+// SIXD_MASK_VALID_BITS & d6d_src_reg, cdata->sixd_mask);
if(cdata->sixd_mask & d6d_src_reg){
- d6d_event = 1;
cdata->last_wakeup_source |= LSM6DS3_WAKEUP_6D;
} else {
- ignore_event = 1;
cdata->last_wakeup_source |= LSM6DS3_WAKEUP_OTHER;
- dev_info(cdata->dev, "ignoring 6d interrupt, wrong axis. mask: 0x%x",
- cdata->sixd_mask);
+// dev_info(cdata->dev, "ignoring 6d interrupt, wrong axis. mask: 0x%x",
+// cdata->sixd_mask);
}
}
if(tap_src_reg & ST_LSM6DS3_TAP_SRC_DETECTED_MASK){
- dev_info(cdata->dev, "TAP IRQ");
+// dev_info(cdata->dev, "TAP IRQ");
if(tap_src_reg & (ST_LSM6DS3_TAP_SRC_SINGLE_TAP_MASK |
ST_LSM6DS3_TAP_SRC_Z_AXIS_MASK)){
- tap_event = 1;
cdata->last_wakeup_source |= LSM6DS3_WAKEUP_OTHER;
- dev_info(cdata->dev, "Valid Tap");
- } else {
- dev_info(cdata->dev, "Ignoring tap");
- }
- }
-
- if(cdata->first_irq_from_resume && wake_irq){
- 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_OTHER;
- dev_info(cdata->dev, "Valid Tap from sleep");
+// dev_info(cdata->dev, "Valid Tap");
}
}
}
@@ -222,7 +198,6 @@ static void st_lsm6ds3_irq_management(struct work_struct *data_work)
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);
@@ -263,20 +238,6 @@ 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){
- 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_OTHER;
- dev_info(cdata->dev, "Valid Tap from sleep");
- }
- pr_info("posting susp again decision: %i", ignore_event);
- //susp_again_post_decision(ignore_event);
-#ifdef WAKE_STATS_DEBUG_INFO
- wakeup_irq_count++;
-#endif
- }
if(!ignore_event && (tap_event || d6d_event) && cdata->first_irq_from_resume){
wake_lock_timeout(&cdata->tap_wlock,msecs_to_jiffies(1000));