r3995 - branches/src/target/kernel/2.6.24.x/patches
werner at sita.openmoko.org
werner at sita.openmoko.org
Thu Jan 31 10:52:10 CET 2008
Author: werner
Date: 2008-01-31 10:52:04 +0100 (Thu, 31 Jan 2008)
New Revision: 3995
Modified:
branches/src/target/kernel/2.6.24.x/patches/gta02-acc.patch
Log:
bugfix-motion-sensors-suspend.patch
Current motion sensor driver in svn chokes resume, this fixes it.
Signed-off-by: Andy Green <andy at openmoko.com>
gta02-acc.patch:
- drivers/input/misc/lis302dl.c (lis302dl_suspend, lis302dl_resume): disable
the SPI interrupt while in suspend
---
drivers/input/misc/lis302dl.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
Modified: branches/src/target/kernel/2.6.24.x/patches/gta02-acc.patch
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/gta02-acc.patch 2008-01-31 09:41:45 UTC (rev 3994)
+++ branches/src/target/kernel/2.6.24.x/patches/gta02-acc.patch 2008-01-31 09:52:04 UTC (rev 3995)
@@ -2,7 +2,7 @@
===================================================================
--- linux-2.6.24.orig/arch/arm/mach-s3c2440/mach-gta02.c
+++ linux-2.6.24/arch/arm/mach-s3c2440/mach-gta02.c
-@@ -374,8 +374,6 @@
+@@ -375,8 +375,6 @@
&s3c_device_usbgadget,
&s3c_device_nand,
&s3c_device_ts,
@@ -11,7 +11,7 @@
>a02_nor_flash,
};
-@@ -475,10 +473,12 @@
+@@ -476,10 +474,12 @@
},
};
@@ -24,7 +24,7 @@
static struct glamo_spigpio_info glamo_spigpio_cfg = {
.pin_clk = GLAMO_GPIO10_OUTPUT,
-@@ -504,16 +504,93 @@
+@@ -505,16 +505,93 @@
/* SPI: Accelerometers attached to SPI of s3c244x */
@@ -123,7 +123,7 @@
},
};
-@@ -522,26 +599,75 @@
+@@ -523,26 +600,75 @@
.modalias = "lis302dl",
.platform_data = &lis302_pdata[0],
.irq = GTA02_IRQ_GSENSOR_1,
@@ -205,7 +205,7 @@
};
static struct resource gta02_led_resources[] = {
-@@ -784,7 +910,6 @@
+@@ -785,7 +911,6 @@
s3c_device_usb.dev.platform_data = >a02_usb_info;
s3c_device_nand.dev.platform_data = >a02_nand_info;
s3c_device_sdi.dev.platform_data = >a02_mmc_cfg;
@@ -213,7 +213,7 @@
/* Only GTA02v1 has a SD_DETECT GPIO. Since the slot is not
* hot-pluggable, this is not required anyway */
-@@ -796,6 +921,12 @@
+@@ -797,6 +922,12 @@
break;
}
@@ -226,7 +226,7 @@
INIT_WORK(>a02_udc_vbus_drawer.work, __gta02_udc_vbus_draw);
s3c24xx_udc_set_platdata(>a02_udc_cfg);
set_s3c2410ts_info(>a02_ts_cfg);
-@@ -824,6 +955,7 @@
+@@ -825,6 +956,7 @@
break;
}
@@ -663,7 +663,7 @@
+ 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_CTRL1, LIS302DL_CTRL1_Xen |
+ LIS302DL_CTRL1_Yen |
+ LIS302DL_CTRL1_Zen);
@@ -680,7 +680,7 @@
+ reg_read(lis, LIS302DL_REG_CLICK_SRC);
+
+ dev_info(&spi->dev, "Found %s\n", pdata->name);
-
++
+ lis->pdata = pdata;
+
+ rc = request_irq(lis->spi_dev->irq, lis302dl_interrupt,
@@ -722,17 +722,18 @@
dev_set_drvdata(&spi->dev, NULL);
kfree(lis);
-@@ -521,6 +418,9 @@
+@@ -521,6 +418,10 @@
static int lis302dl_suspend(struct spi_device *spi, pm_message_t state)
{
struct lis302dl_info *lis = dev_get_drvdata(&spi->dev);
+ unsigned long flags;
+
++ disable_irq(lis->spi_dev->irq);
+ local_save_flags(flags);
/* save registers */
lis->regs[LIS302DL_REG_CTRL1] = reg_read(lis, LIS302DL_REG_CTRL1);
-@@ -561,12 +461,17 @@
+@@ -561,12 +462,17 @@
reg_write(lis, LIS302DL_REG_CTRL1, tmp);
}
@@ -750,11 +751,12 @@
/* restore registers after resume */
reg_write(lis, LIS302DL_REG_CTRL1, lis->regs[LIS302DL_REG_CTRL1]);
-@@ -597,6 +502,8 @@
+@@ -597,6 +503,9 @@
reg_write(lis, LIS302DL_REG_CLICK_WINDOW,
lis->regs[LIS302DL_REG_CLICK_WINDOW]);
+ local_irq_restore(flags);
++ enable_irq(lis->spi_dev->irq);
+
return 0;
}
More information about the commitlog
mailing list