return 0;
}
+static int resmon_thermal_uevent_handler(struct resmon *monitor, void *result,
+ struct udev_device *dev)
+{
+ struct pass_resmon *resmon = monitor->resmon;
+ struct pass_resource *res =
+ container_of(resmon, struct pass_resource, resmon);
+ struct resmon_result_src_thermal *thermal_result = result;
+ int temp;
+
+ if (!thermal_result)
+ return -ENOMEM;
+
+ /* Get temperature of h/w resource */
+ temp = pass_get_temp(res);
+ if (temp < 0)
+ return temp;
+
+ thermal_result->temp = temp;
+
+ return 0;
+}
+
/* RESMON_SRC_CPUHP */
#define RESMON_SRC_CPUHP_COUNT 20
static int resmon_cpuhp_init(struct resmon *monitor)
.init = resmon_thermal_init,
.exit = resmon_thermal_exit,
.timer_handler = resmon_thermal_timer_handler,
- .uevent_handler = NULL,
- .uevent_subsystem = NULL,
+ .uevent_handler = resmon_thermal_uevent_handler,
+ .uevent_subsystem = "thermal",
.uevent_devtype = NULL,
};