1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-24 19:29:42 +02:00
openwrt-xburst/target/linux/s3c24xx/patches-2.6.24/1275-lis302dl-allow-unloading-module.patch.patch
mirko fc54b9bf15 changed Makefile and profiles, added patches for kernel 2.6.24
(stable-branch of Openmoko)


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13613 3c298f89-4303-0410-b956-a3cf2f4a3e73
2008-12-12 11:58:53 +00:00

39 lines
1.4 KiB
Diff

From 399efd68e115b6548fe943a7a9fbf04753970e61 Mon Sep 17 00:00:00 2001
From: Simon Kagstrom <simon.kagstrom@gmail.com>
Date: Wed, 13 Aug 2008 11:27:11 +0100
Subject: [PATCH] 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@gmail.com>
---
drivers/input/misc/lis302dl.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
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)
--
1.5.6.5