From e8ab49ae248eb460993aacbaa1f7774b1a292684 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Thu, 27 May 2010 19:58:58 +0200 Subject: [PATCH] --- yaml --- r: 199053 b: refs/heads/master c: 8d4dee98b10050db9c32a449e460a2f69bb558ec h: refs/heads/master i: 199051: ab0bdc042503142bd70ad03584bda2afc8120732 v: v3 --- [refs] | 2 +- trunk/drivers/hwmon/tmp102.c | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 2918bd58409c..a20aa2df3294 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cff37c9e82e022068840b3d33167e64c6a0ecc06 +refs/heads/master: 8d4dee98b10050db9c32a449e460a2f69bb558ec diff --git a/trunk/drivers/hwmon/tmp102.c b/trunk/drivers/hwmon/tmp102.c index e9de28df0e4d..0da695d800c5 100644 --- a/trunk/drivers/hwmon/tmp102.c +++ b/trunk/drivers/hwmon/tmp102.c @@ -239,19 +239,27 @@ static int __devexit tmp102_remove(struct i2c_client *client) static int tmp102_suspend(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); + int config; - tmp102_write_reg(client, TMP102_CONF_REG, TMP102_CONF_SD); + config = tmp102_read_reg(client, TMP102_CONF_REG); + if (config < 0) + return config; - return 0; + config |= TMP102_CONF_SD; + return tmp102_write_reg(client, TMP102_CONF_REG, config); } static int tmp102_resume(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); + int config; - tmp102_write_reg(client, TMP102_CONF_REG, TMP102_CONFIG); + config = tmp102_read_reg(client, TMP102_CONF_REG); + if (config < 0) + return config; - return 0; + config &= ~TMP102_CONF_SD; + return tmp102_write_reg(client, TMP102_CONF_REG, config); } static const struct dev_pm_ops tmp102_dev_pm_ops = {