-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Well this helps a bit for now, but neod seems to grab everything in
/dev/input/event* and keep it open :-/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFHmazlOjLpvpq7dMoRAvUZAJ9M8wtDY18zgIekryjr7BP8CDD4JQCdG0IC
jkZ4GPx90ErGGATNkSI8lHs=
=Rar8
-----END PGP SIGNATURE-----
sensors-inactive-unless-event-open.patch

From: warmcat <[EMAIL PROTECTED]>

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 <[EMAIL PROTECTED]>
---

 drivers/input/misc/lis302dl.c |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)


diff --git a/drivers/input/misc/lis302dl.c b/drivers/input/misc/lis302dl.c
index 1210efd..2cb2921 100644
--- a/drivers/input/misc/lis302dl.c
+++ b/drivers/input/misc/lis302dl.c
@@ -459,12 +459,6 @@ static int __devinit lis302dl_probe(struct spi_device *spi)
 		goto bail_free_lis;
 	}
 
-	/* 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_TRIGGER_LOW, "lis302dl", lis);
 	if (rc < 0) {
@@ -509,7 +503,16 @@ static int __devinit lis302dl_probe(struct spi_device *spi)
 	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);

Reply via email to