From 3214ee879946452c1697d1a59819af4381b5b717 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Thu, 28 Oct 2010 20:31:46 +0200 Subject: [PATCH] --- yaml --- r: 220483 b: refs/heads/master c: 80646b95863ba282330d07290c79254c2f002139 h: refs/heads/master i: 220481: 5771546ae4a16357e09ddbdcf09c2864915a433a 220479: 6fe11648f224b93cb0547a8694aa790d3d6ce512 v: v3 --- [refs] | 2 +- trunk/drivers/hwmon/w83795.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 40211007d6aa..de307a6a7a31 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 86ef4d2fd5921ff0bcfd1c0d88403a08862087bc +refs/heads/master: 80646b95863ba282330d07290c79254c2f002139 diff --git a/trunk/drivers/hwmon/w83795.c b/trunk/drivers/hwmon/w83795.c index b45416011c2a..62deffcc64a3 100644 --- a/trunk/drivers/hwmon/w83795.c +++ b/trunk/drivers/hwmon/w83795.c @@ -55,6 +55,7 @@ MODULE_PARM_DESC(reset, "Set to 1 to reset chip, not recommended"); #define W83795_REG_I2C_ADDR 0xfc #define W83795_REG_CONFIG 0x01 #define W83795_REG_CONFIG_CONFIG48 0x04 +#define W83795_REG_CONFIG_START 0x01 /* Multi-Function Pin Ctrl Registers */ #define W83795_REG_VOLT_CTRL1 0x02 @@ -1664,12 +1665,18 @@ static const struct sensor_device_attribute_2 sda_single_files[] = { static void w83795_init_client(struct i2c_client *client) { + u8 config; + if (reset) w83795_write(client, W83795_REG_CONFIG, 0x80); - /* Start monitoring */ - w83795_write(client, W83795_REG_CONFIG, - w83795_read(client, W83795_REG_CONFIG) | 0x01); + /* Start monitoring if needed */ + config = w83795_read(client, W83795_REG_CONFIG); + if (!(config & W83795_REG_CONFIG_START)) { + dev_info(&client->dev, "Enabling monitoring operations\n"); + w83795_write(client, W83795_REG_CONFIG, + config | W83795_REG_CONFIG_START); + } } static int w83795_get_device_id(struct i2c_client *client)