summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Langlais <philippe.langlais@linaro.org>2012-02-14 07:46:48 +0100
committerPhilippe Langlais <philippe.langlais@linaro.org>2012-02-15 09:35:16 +0100
commit0f1eec91f8edb3d516f3449018e0aa145a3fe7c1 (patch)
tree419329ea96ed365bcefd1ef02b375d55a5aeda3f
parent6ce19d710f424e648bcb6e5b3d06b3d37b4c014d (diff)
lsm303dlh: add support for Android early suspend
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
-rw-r--r--drivers/hwmon/lsm303dlh_a.c13
-rw-r--r--drivers/hwmon/lsm303dlh_m.c10
2 files changed, 18 insertions, 5 deletions
diff --git a/drivers/hwmon/lsm303dlh_a.c b/drivers/hwmon/lsm303dlh_a.c
index 65e92dfb0ff..b3cdd587e8d 100644
--- a/drivers/hwmon/lsm303dlh_a.c
+++ b/drivers/hwmon/lsm303dlh_a.c
@@ -38,6 +38,9 @@
#endif
#include <linux/lsm303dlh.h>
+#ifdef CONFIG_HAS_EARLYSUSPEND
+#include <linux/earlysuspend.h>
+#endif
#include <linux/regulator/consumer.h>
/* lsm303dlh accelerometer registers */
@@ -198,6 +201,9 @@ struct lsm303dlh_a_data {
unsigned char interrupt_configure[2];
unsigned char interrupt_duration[2];
unsigned char interrupt_threshold[2];
+#ifdef CONFIG_HAS_EARLYSUSPEND
+ struct early_suspend early_suspend;
+#endif
int device_status;
int id;
};
@@ -288,6 +294,7 @@ static int lsm303dlh_a_restore(struct lsm303dlh_a_data *ddata)
if (ddata->regulator)
regulator_enable(ddata->regulator);
+
/* BDU should be enabled by default/recommened */
reg = ddata->range;
reg |= LSM303DLH_A_CR4_BDU_MASK;
@@ -1327,9 +1334,9 @@ static struct i2c_driver lsm303dlh_a_driver = {
.id_table = lsm303dlh_a_id,
.driver = {
.name = "lsm303dlh_a",
- #if (!defined(CONFIG_HAS_EARLYSUSPEND) && defined(CONFIG_PM))
- .pm = &lsm303dlh_a_dev_pm_ops,
- #endif
+#if (!defined(CONFIG_HAS_EARLYSUSPEND) && defined(CONFIG_PM))
+ .pm = &lsm303dlh_a_dev_pm_ops,
+#endif
},
};
diff --git a/drivers/hwmon/lsm303dlh_m.c b/drivers/hwmon/lsm303dlh_m.c
index 98704dc5a0b..b2a6feb4538 100644
--- a/drivers/hwmon/lsm303dlh_m.c
+++ b/drivers/hwmon/lsm303dlh_m.c
@@ -39,6 +39,9 @@
#include <linux/lsm303dlh.h>
#include <linux/regulator/consumer.h>
+#ifdef CONFIG_HAS_EARLYSUSPEND
+#include <linux/earlysuspend.h>
+#endif
#include <linux/kernel.h>
/* lsm303dlh magnetometer registers */
@@ -161,6 +164,9 @@ struct lsm303dlh_m_data {
unsigned char mode;
unsigned char rate;
unsigned char range;
+#ifdef CONFIG_HAS_EARLYSUSPEND
+ struct early_suspend early_suspend;
+#endif
int device_status;
};
@@ -884,9 +890,9 @@ static struct i2c_driver lsm303dlh_m_driver = {
.id_table = lsm303dlh_m_id,
.driver = {
.name = "lsm303dlh_m",
- #if (!defined(CONFIG_HAS_EARLYSUSPEND) && defined(CONFIG_PM))
+#if (!defined(CONFIG_HAS_EARLYSUSPEND) && defined(CONFIG_PM))
.pm = &lsm303dlh_m_dev_pm_ops,
- #endif
+#endif
},
};