Michael
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 <[email protected]>

diff --git a/drivers/input/misc/lis302dl.c b/drivers/input/misc/lis302dl.c
index f31e548..d345bfb 100644
--- a/drivers/input/misc/lis302dl.c
+++ b/drivers/input/misc/lis302dl.c
@@ -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]]);

Reply via email to