input: lis302dl: fix the resume path
authorMichael Trimarchi <trimarchi@gandalf.sssup.it>
Thu, 26 Nov 2009 00:51:19 +0000 (01:51 +0100)
committerPaul Fertser <fercerpav@gmail.com>
Thu, 26 Nov 2009 08:24:07 +0000 (11:24 +0300)
This fix the resume path of the accelerometer. If the accelerometer
is not power up, restore to initial status. Move the REG_CTRL1 to the
last one position avoid writing on the register when the device is
in power down mode.

Signed-off-by: Michael Trimarchi <michael@panicking.kicks-ass.org>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
drivers/input/misc/lis302dl.c

index f31e548..d345bfb 100644 (file)
@@ -818,7 +818,6 @@ static int __devexit lis302dl_remove(struct spi_device *spi)
 #ifdef CONFIG_PM
 
 static u8 regs_to_save[] = {
-       LIS302DL_REG_CTRL1,
        LIS302DL_REG_CTRL2,
        LIS302DL_REG_CTRL3,
        LIS302DL_REG_FF_WU_CFG_1,
@@ -833,7 +832,7 @@ static u8 regs_to_save[] = {
        LIS302DL_REG_CLICK_TIME_LIMIT,
        LIS302DL_REG_CLICK_LATENCY,
        LIS302DL_REG_CLICK_WINDOW,
-
+       LIS302DL_REG_CTRL1,
 };
 
 static int lis302dl_suspend(struct spi_device *spi, pm_message_t state)
@@ -906,11 +905,6 @@ static int lis302dl_resume(struct spi_device *spi)
        if (__lis302dl_reset_device(lis))
                dev_err(&spi->dev, "device BOOT reload failed\n");
 
-       lis->regs[LIS302DL_REG_CTRL1] |=        LIS302DL_CTRL1_PD |
-                                               LIS302DL_CTRL1_Xen |
-                                               LIS302DL_CTRL1_Yen |
-                                               LIS302DL_CTRL1_Zen;
-
        /* restore registers after resume */
        for (n = 0; n < ARRAY_SIZE(regs_to_save); n++)
                __reg_write(lis, regs_to_save[n], lis->regs[regs_to_save[n]]);