r3970 - branches/src/target/kernel/2.6.24.x/patches

werner at sita.openmoko.org werner at sita.openmoko.org
Tue Jan 29 09:43:05 CET 2008


Author: werner
Date: 2008-01-29 09:43:01 +0100 (Tue, 29 Jan 2008)
New Revision: 3970

Modified:
   branches/src/target/kernel/2.6.24.x/patches/gta02-acc.patch
Log:
sensors-inactive-unless-event-open.patch

From: warmcat <andy at openmoko.com>

Stop the global slowdown action of the current motion sensor patch:
only accept interrupts if the event interface is opened by something

Signed-off-by: Andy Green <andy at openmoko.com>



Modified: branches/src/target/kernel/2.6.24.x/patches/gta02-acc.patch
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/gta02-acc.patch	2008-01-29 04:25:10 UTC (rev 3969)
+++ branches/src/target/kernel/2.6.24.x/patches/gta02-acc.patch	2008-01-29 08:43:01 UTC (rev 3970)
@@ -334,7 +334,7 @@
  	 * disable the data ready events */
  	reg_set_bit_mask(lis, LIS302DL_REG_CTRL1, ctrl1, 0x00);
  
-@@ -446,44 +447,44 @@
+@@ -446,44 +447,38 @@
  
  	rc = spi_setup(spi);
  	if (rc < 0) {
@@ -359,12 +359,7 @@
  
 -	/* switch interrupt to open collector */
 -	reg_write(lis, LIS302DL_CTRL3_PP_OD, 0x7c);
-+	/* switch interrupt to open collector, active-low */
-+	reg_write(lis, LIS302DL_REG_CTRL3, LIS302DL_CTRL3_PP_OD |
-+					   LIS302DL_CTRL3_IHL);
-+	lis302dl_int_mode(spi, 1, LIS302DL_INTMODE_DATA_READY);
-+	lis302dl_int_mode(spi, 2, LIS302DL_INTMODE_DATA_READY);
- 
+-
 -	rc = request_irq(lis->spi_dev->irq, lis302dl_interrupt, IRQF_DISABLED,
 -			 "lis302dl", NULL);
 +	rc = request_irq(lis->spi_dev->irq, lis302dl_interrupt,
@@ -394,7 +389,7 @@
  	}
  
  	set_bit(EV_REL, lis->input_dev->evbit);
-@@ -498,9 +499,35 @@
+@@ -498,9 +493,44 @@
  	lis->input_dev->open = lis302dl_input_open;
  	lis->input_dev->close = lis302dl_input_close;
  
@@ -410,8 +405,17 @@
 +	reg_write(lis, LIS302DL_REG_FF_WU_THS_1, 0x14);
 +	reg_write(lis, LIS302DL_REG_FF_WU_DURATION_1, 0x00);
 +	reg_write(lis, LIS302DL_REG_FF_WU_CFG_1, 0x95);
-+	reg_write(lis, LIS302DL_REG_CTRL3, 0xe4);
 +
++	reg_write(lis, LIS302DL_REG_CTRL1, LIS302DL_CTRL1_Xen |
++					   LIS302DL_CTRL1_Yen |
++			 		   LIS302DL_CTRL1_Zen);
++
++	/* switch interrupt to open collector, active-low */
++	reg_write(lis, LIS302DL_REG_CTRL3, LIS302DL_CTRL3_PP_OD |
++					   LIS302DL_CTRL3_IHL);
++	lis302dl_int_mode(spi, 1, LIS302DL_INTMODE_DATA_READY);
++	lis302dl_int_mode(spi, 2, LIS302DL_INTMODE_DATA_READY);
++
 +	reg_read(lis, LIS302DL_REG_STATUS);
 +	reg_read(lis, LIS302DL_REG_FF_WU_SRC_1);
 +	reg_read(lis, LIS302DL_REG_FF_WU_SRC_2);
@@ -431,7 +435,7 @@
  }
  
  static int __devexit lis302dl_remove(struct spi_device *spi)
-@@ -511,6 +538,8 @@
+@@ -511,6 +541,8 @@
  	reg_write(lis, LIS302DL_REG_CTRL1, 0x00);
  	sysfs_remove_group(&spi->dev.kobj, &lis302dl_attr_group);
  	input_unregister_device(lis->input_dev);





More information about the commitlog mailing list