diff options
| author | Evan Wilson <evan@oliodevices.com> | 2016-04-19 18:28:36 -0700 | 
|---|---|---|
| committer | Evan Wilson <evan@oliodevices.com> | 2016-04-19 18:28:36 -0700 | 
| commit | 3ac52dc5b41a29ca68713ff15655836299152f5a (patch) | |
| tree | 134d2d0ac78e8ebb74bdce9b75621a98e963876a | |
| parent | 07957bd97bf8ac4b079f3bb56f80a0ef534fb743 (diff) | |
| download | olio-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.c | 7 | ||||
| -rw-r--r-- | drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_trigger.c | 59 | 
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)); |