On Tue, 2016-02-23 at 20:11 -0800, Srikar Srimath Tirumala wrote: > Add a sysfs_notify on thermal_zone*/temp and cooling_device*/ > cur_state whenever a passive or critical trip is triggered. > > This change allows usermode apps to register itself to get notified, > when certain thermal conditions occur and reduce their workload. > This workload throttling can reduce\prevent throttling of hardware > clocks while allowing some other critical apps to run longer > reliably. > Signed-off-by: Srikar Srimath Tirumala <srikars@xxxxxxxxxx> > --- > drivers/thermal/thermal_core.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/thermal/thermal_core.c > b/drivers/thermal/thermal_core.c > index a0a8fd1..d8d257d 100644 > --- a/drivers/thermal/thermal_core.c > +++ b/drivers/thermal/thermal_core.c > @@ -567,6 +567,8 @@ void thermal_zone_device_update(struct > thermal_zone_device *tz) > > for (count = 0; count < tz->trips; count++) > handle_thermal_trip(tz, count); > + > + sysfs_notify(&tz->device.kobj, NULL, "temp"); When user space governor is used this will result in two notifications to user space. Also you want when a trip is violated. For some driver there will be too many calls from irq thread, so you may want in handle_thermal_trip when a trip is violated. Thanks, Srinivas > } > EXPORT_SYMBOL_GPL(thermal_zone_device_update); > > @@ -1638,6 +1640,7 @@ void thermal_cdev_update(struct > thermal_cooling_device *cdev) > cdev->updated = true; > trace_cdev_update(cdev, target); > dev_dbg(&cdev->device, "set to state %lu\n", target); > + sysfs_notify(&cdev->device.kobj, NULL, "cur_state"); > } > EXPORT_SYMBOL(thermal_cdev_update); > ��.n��������+%������w��{.n�����{��נ���^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�