summaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/lm75.c
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2005-07-27 21:28:28 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2005-09-05 18:14:06 +0200
commite647ecf15e365679f0528d7815ab4db0d4802918 (patch)
treec1892aa10ee99705e706680760d6bf247e5914af /drivers/hwmon/lm75.c
parent[PATCH] I2C: max6875 code cleanup (diff)
downloadlinux-e647ecf15e365679f0528d7815ab4db0d4802918.tar.xz
linux-e647ecf15e365679f0528d7815ab4db0d4802918.zip
[PATCH] hwmon: soften lm75 initialization
The LM75 initialization is a bit agressive, it arbitrarily reconfigures the chip. Make it only change the bit it needs. This is a port from the 2.4 kernel version of the driver (lm_sensors). Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/hwmon/lm75.c')
-rw-r--r--drivers/hwmon/lm75.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/hwmon/lm75.c b/drivers/hwmon/lm75.c
index 5be164ed278e..79d7ebc9b14a 100644
--- a/drivers/hwmon/lm75.c
+++ b/drivers/hwmon/lm75.c
@@ -251,8 +251,12 @@ static int lm75_write_value(struct i2c_client *client, u8 reg, u16 value)
static void lm75_init_client(struct i2c_client *client)
{
- /* Initialize the LM75 chip */
- lm75_write_value(client, LM75_REG_CONF, 0);
+ int reg;
+
+ /* Enable if in shutdown mode */
+ reg = lm75_read_value(client, LM75_REG_CONF);
+ if (reg >= 0 && (reg & 0x01))
+ lm75_write_value(client, LM75_REG_CONF, reg & 0xfe);
}
static struct lm75_data *lm75_update_device(struct device *dev)