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