diff options
author | Serge Semin <Sergey.Semin@baikalelectronics.ru> | 2020-09-20 14:09:22 +0300 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2020-10-04 08:40:10 -0700 |
commit | 0015503e5f6357f286bef34d039e43359fa4efd4 (patch) | |
tree | a6010dff1277164e4b490f6a69701217a9e83d3f /drivers/hwmon/bt1-pvt.h | |
parent | a6db1561291fc0f2f9aa23bf38f381adc63e7b14 (diff) | |
download | linux-0015503e5f6357f286bef34d039e43359fa4efd4.tar.gz linux-0015503e5f6357f286bef34d039e43359fa4efd4.tar.bz2 linux-0015503e5f6357f286bef34d039e43359fa4efd4.zip |
hwmon: (bt1-pvt) Cache current update timeout
Instead of converting the update timeout data to the milliseconds each
time on the read procedure let's preserve the currently set timeout in the
dedicated driver private data cache. The cached value will be then used in
the timeout read method and in the alarm-less data conversion to prevent
the caller task hanging up in case if the PVT sensor is suddenly powered
down.
Fixes: 87976ce2825d ("hwmon: Add Baikal-T1 PVT sensor driver")
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Link: https://lore.kernel.org/r/20200920110924.19741-3-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon/bt1-pvt.h')
-rw-r--r-- | drivers/hwmon/bt1-pvt.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/hwmon/bt1-pvt.h b/drivers/hwmon/bt1-pvt.h index 5eac73e94885..93b8dd5e7c94 100644 --- a/drivers/hwmon/bt1-pvt.h +++ b/drivers/hwmon/bt1-pvt.h @@ -10,6 +10,7 @@ #include <linux/completion.h> #include <linux/hwmon.h> #include <linux/kernel.h> +#include <linux/ktime.h> #include <linux/mutex.h> #include <linux/seqlock.h> @@ -201,6 +202,7 @@ struct pvt_cache { * if alarms are disabled). * @sensor: current PVT sensor the data conversion is being performed for. * @cache: data cache descriptor. + * @timeout: conversion timeout cache. */ struct pvt_hwmon { struct device *dev; @@ -214,6 +216,7 @@ struct pvt_hwmon { struct mutex iface_mtx; enum pvt_sensor_type sensor; struct pvt_cache cache[PVT_SENSORS_NUM]; + ktime_t timeout; }; /* |