Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80646b95 authored by Jean Delvare's avatar Jean Delvare Committed by Jean Delvare
Browse files

hwmon: (w83795) Only start monitoring if needed



This saves an SMBus write if monitoring was already enabled.

Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
parent 86ef4d2f
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -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 */
	/* 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,
		     w83795_read(client, W83795_REG_CONFIG) | 0x01);
			     config | W83795_REG_CONFIG_START);
	}
}

static int w83795_get_device_id(struct i2c_client *client)