Skip to content

Commit

Permalink
hwmon: (w83795) Only start monitoring if needed
Browse files Browse the repository at this point in the history
This saves an SMBus write if monitoring was already enabled.

Signed-off-by: Jean Delvare <[email protected]>
  • Loading branch information
Jean Delvare authored and Jean Delvare committed Oct 28, 2010
1 parent 86ef4d2 commit 80646b9
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions drivers/hwmon/w83795.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 80646b9

Please sign in to comment.