From 19081bddc5c050bbbe9fe12b04775a17ff9fec3a Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Thu, 28 Oct 2010 20:31:48 +0200 Subject: [PATCH] --- yaml --- r: 220503 b: refs/heads/master c: 2ae61de90545fe3dadae8119181c430d89a8627b h: refs/heads/master i: 220501: 055291d9bc6e1fbe0612521ac2302c8aefb0c4ef 220499: 1fa8e7f67a6837269821adebff9a89fbd0c6e8dd 220495: 1ac081f81802ed4ef8ea3fe4f84879ad133412a0 v: v3 --- [refs] | 2 +- trunk/drivers/hwmon/w83795.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index bfe1a113f842..84f544fbc548 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0d7237bfd13a0a8df270654223c15a16b368a3bd +refs/heads/master: 2ae61de90545fe3dadae8119181c430d89a8627b diff --git a/trunk/drivers/hwmon/w83795.c b/trunk/drivers/hwmon/w83795.c index 511bced1ee97..6464a52b134b 100644 --- a/trunk/drivers/hwmon/w83795.c +++ b/trunk/drivers/hwmon/w83795.c @@ -371,6 +371,7 @@ struct w83795_data { u8 beeps[6]; /* Register value */ char valid; + char valid_limits; }; /* @@ -498,6 +499,8 @@ static void w83795_update_limits(struct i2c_client *client) /* Read beep settings */ for (i = 0; i < ARRAY_SIZE(data->beeps); i++) data->beeps[i] = w83795_read(client, W83795_REG_BEEP(i)); + + data->valid_limits = 1; } static void w83795_update_pwm_config(struct i2c_client *client) @@ -564,6 +567,9 @@ static struct w83795_data *w83795_update_device(struct device *dev) mutex_lock(&data->update_lock); + if (!data->valid_limits) + w83795_update_limits(client); + if (!(time_after(jiffies, data->last_updated + HZ * 2) || !data->valid)) goto END; @@ -2017,7 +2023,6 @@ static int w83795_probe(struct i2c_client *client, } data->has_gain = w83795_read(client, W83795_REG_VMIGB_CTRL) & 0x0f; - w83795_update_limits(client); /* pwm and smart fan */ if (data->chip_type == w83795g)