summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDavid Yu <davyu@nvidia.com>2014-02-24 22:04:21 +0900
committerHarry Hong <hhong@nvidia.com>2014-03-03 17:19:43 -0800
commitbbb144442c78e3147d12e5f54f19d251cba79ad5 (patch)
treefd3fb028f6e3e1f792ddb243feadee67dcce4429 /drivers
parent935f3cdc63c5807ee235b4180b16d251040c56a3 (diff)
input: misc: mpu: fix i2c error on resume
Bug 1461473 Change-Id: I8ea056783729b95045a9ff1ddc8d75474fee6638 Signed-off-by: David Yu <davyu@nvidia.com> Reviewed-on: http://git-master/r/373605 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Erik Lilliebjerg <elilliebjerg@nvidia.com> Reviewed-by: Robert Collins <rcollins@nvidia.com> Reviewed-by: Harry Hong <hhong@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/input/misc/mpu/inv_gyro.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/input/misc/mpu/inv_gyro.c b/drivers/input/misc/mpu/inv_gyro.c
index 152674f25a14..9b67b9f88748 100644
--- a/drivers/input/misc/mpu/inv_gyro.c
+++ b/drivers/input/misc/mpu/inv_gyro.c
@@ -4355,7 +4355,15 @@ static int nvi_resume(struct device *dev)
inf = dev_get_drvdata(dev);
inf->suspend = false;
- nvi_pm(inf, NVI_PM_ON_FULL);
+ if (inf->chip_config.accl_enable || inf->chip_config.gyro_enable) {
+ mutex_lock(&inf->mutex);
+ nvi_pm(inf, NVI_PM_ON);
+ if (inf->chip_config.gyro_enable)
+ nvi_gyro_config_wr(inf, 0, inf->chip_config.gyro_fsr);
+ nvi_global_delay(inf);
+ nvi_pm(inf, NVI_PM_AUTO);
+ mutex_unlock(&inf->mutex);
+ }
enable_irq(inf->i2c->irq);
if (inf->dbg & NVI_DBG_SPEW_MSG)
dev_info(dev, "%s done\n", __func__);