OSDN Git Service

hwmon: (lm90) Generate sysfs and udev events for all alarms
authorGuenter Roeck <linux@roeck-us.net>
Tue, 11 Jan 2022 11:01:56 +0000 (03:01 -0800)
committerGuenter Roeck <linux@roeck-us.net>
Wed, 13 Jul 2022 15:38:17 +0000 (08:38 -0700)
So far the driver only generated sysfs and udev events for minimum and
maximum alarms. Also generate events for critical and emergency alarms.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/lm90.c

index 3820f0e..83d027c 100644 (file)
@@ -1829,6 +1829,26 @@ static bool lm90_is_tripped(struct i2c_client *client, u16 *status)
                hwmon_notify_event(data->hwmon_dev, hwmon_temp,
                                   hwmon_temp_max_alarm, 2);
 
+       if (st & LM90_STATUS_LTHRM)
+               hwmon_notify_event(hwmon_dev, hwmon_temp,
+                                  hwmon_temp_crit_alarm, 0);
+       if (st & LM90_STATUS_RTHRM)
+               hwmon_notify_event(hwmon_dev, hwmon_temp,
+                                  hwmon_temp_crit_alarm, 1);
+       if (st2 & MAX6696_STATUS2_R2THRM)
+               hwmon_notify_event(hwmon_dev, hwmon_temp,
+                                  hwmon_temp_crit_alarm, 2);
+
+       if (st2 & MAX6696_STATUS2_LOT2)
+               hwmon_notify_event(hwmon_dev, hwmon_temp,
+                                  hwmon_temp_emergency_alarm, 0);
+       if (st2 & MAX6696_STATUS2_ROT2)
+               hwmon_notify_event(hwmon_dev, hwmon_temp,
+                                  hwmon_temp_emergency_alarm, 1);
+       if (st2 & MAX6696_STATUS2_R2OT2)
+               hwmon_notify_event(hwmon_dev, hwmon_temp,
+                                  hwmon_temp_emergency_alarm, 2);
+
        return true;
 }