Hi Rui, > -----Original Message----- > From: Zhang, Rui > Sent: Monday, August 13, 2012 12:33 PM > To: R, Durgadoss > Cc: lenb@xxxxxxxxxx; rjw@xxxxxxx; linux-acpi@xxxxxxxxxxxxxxx; linux- > pm@xxxxxxxxxxxxxxx; eduardo.valentin@xxxxxx; amit.kachhap@xxxxxxxxxx; > wni@xxxxxxxxxx > Subject: Re: [PATCH 11/13] Thermal: Add a notification API > > On 四, 2012-08-09 at 18:16 +0530, Durgadoss R wrote: > > This patch adds a notification API which the sensor drivers' > > can use to notify the framework. The framework then takes > > care of the throttling according to the configured policy. > > > > Signed-off-by: Durgadoss R <durgadoss.r@xxxxxxxxx> > > --- > > drivers/thermal/thermal_sys.c | 18 ++++++++++++++++++ > > include/linux/thermal.h | 1 + > > 2 files changed, 19 insertions(+) > > > > diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c > > index 193d071..6931d81 100644 > > --- a/drivers/thermal/thermal_sys.c > > +++ b/drivers/thermal/thermal_sys.c > > @@ -1309,6 +1309,24 @@ void thermal_cooling_device_unregister(struct > thermal_cooling_device *cdev) > > } > > EXPORT_SYMBOL(thermal_cooling_device_unregister); > > > > +/** > > + * notify_thermal_framework - Sensor drivers use this API to notify > framework > > + * @tz: thermal zone device > > + * @trip: indicates which trip point has been crossed > > + * > > + * This function handles the trip events from sensor drivers. It starts > > + * throttling the cooling devices according to the policy configured. > > + * For CRITICAL and HOT trip points, this notifies the respective drivers, > > + * and does actual throttling for other trip points i.e ACTIVE and PASSIVE. > > + * The throttling policy is based on the configured platform data; if no > > + * platform data is provided, this uses the step_wise throttling policy. > > + */ > > +void notify_thermal_framework(struct thermal_zone_device *tz, int trip) > > +{ > > + handle_thermal_trip(tz, trip); > > +} > > +EXPORT_SYMBOL(notify_thermal_framework); > > + > why thermal_zone_device_update() can not work here? It can work. But thermal_zone_device_update() goes over the list of all trip points whereas here we know 'trip' is the trip point that we have to handle now. So, why do we need to iterate over all trip points again ? That’s why it is implemented this way. Thanks, Durga ��.n��������+%������w��{.n�����{�����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f