[PATCH v2 2/2] lm80.c: reinitialize client if data is not valid

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



if data->valid == 0 when asking for an update reinitialize
the client.
This is done for the case that the device got disconnected
as without reinitialisation it will not give any sensible
readings.

Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks@xxxxxxxxx>
---

Tested with actual system and unplugging and replugging the device

 drivers/hwmon/lm80.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/hwmon/lm80.c b/drivers/hwmon/lm80.c
index 616f470..1d86912 100644
--- a/drivers/hwmon/lm80.c
+++ b/drivers/hwmon/lm80.c
@@ -583,6 +583,11 @@ static struct lm80_data *lm80_update_device(struct device *dev)
 
 	mutex_lock(&data->update_lock);
 
+    /* If the data is not valid it might be the device was temporarily
+       disconnected. In order to keep things running re-initialize the lm80 */
+	if (!data->valid)
+		lm80_init_client(client);
+
 	if (time_after(jiffies, data->last_updated + 2 * HZ) || !data->valid) {
 		dev_dbg(&client->dev, "Starting lm80 update\n");
 		for (i = 0; i <= 6; i++) {
-- 
1.7.0.4


_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux