-----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);