[RFC, PATCH 2/4]: Configuring accelerometer wakeups

Simon Kagstrom simon.kagstrom at gmail.com
Mon Aug 11 11:42:41 CEST 2008


lis302dl-allow-unloading-module.patch

From: Simon Kagstrom <simon.kagstrom at gmail.com>

This patch fixes module unloading for the accelerometer (actually module
loading failed before). The two problems were that the interrupt was not
unregistered, and that the device was left in a "strange" state.

Signed-off-by: Simon Kagstrom <simon.kagstrom at gmail.com>
---

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

diff --git a/drivers/input/misc/lis302dl.c b/drivers/input/misc/lis302dl.c
index de8478d..1e9ef36 100644
--- a/drivers/input/misc/lis302dl.c
+++ b/drivers/input/misc/lis302dl.c
@@ -462,11 +462,17 @@ static int __devexit lis302dl_remove(struct spi_device *spi)
 	struct lis302dl_info *lis = dev_get_drvdata(&spi->dev);
 	unsigned long flags;
 
-	/* power down the device */
+	disable_irq(lis->spi_dev->irq);
+
+	/* Reset and power down the device */
 	local_save_flags(flags);
+	reg_write(lis, LIS302DL_REG_CTRL3, 0x00);
+	reg_write(lis, LIS302DL_REG_CTRL2, 0x00);
 	reg_write(lis, LIS302DL_REG_CTRL1, 0x00);
 	local_irq_restore(flags);
 
+	/* Cleanup resources */
+	free_irq(lis->spi_dev->irq, lis);
 	sysfs_remove_group(&spi->dev.kobj, &lis302dl_attr_group);
 	input_unregister_device(lis->input_dev);
 	if (lis->input_dev)




More information about the openmoko-kernel mailing list