[pkg-fso-commits] [SCM] linux-2.6-openmoko, the Linux 2.6 kernel tree from Openmoko branch, stable, updated. upstream/20080808.git43620428-24-gca19d15

Andy Green agreen at pads.home.warmcat.com
Mon Oct 20 09:46:25 UTC 2008


The following commit has been merged in the stable branch:
commit 399efd68e115b6548fe943a7a9fbf04753970e61
Author: Simon Kagstrom <simon.kagstrom at gmail.com>
Date:   Wed Aug 13 11:27:11 2008 +0100

    lis302dl-allow-unloading-module.patch
    
    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>

diff --git a/drivers/input/misc/lis302dl.c b/drivers/input/misc/lis302dl.c
index de8478d..b97cae7 100644
--- a/drivers/input/misc/lis302dl.c
+++ b/drivers/input/misc/lis302dl.c
@@ -462,11 +462,15 @@ 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 */
+	/* 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)

-- 
linux-2.6-openmoko, the Linux 2.6 kernel tree from Openmoko



More information about the pkg-fso-commits mailing list