On Thu, Oct 09, 2014 at 06:38:39PM +0200, Lukasz Majewski wrote: > This patch extends the of-thermal.c to provide information about number of > available non critical (i.e. non HW) trip points in the system. > > Signed-off-by: Lukasz Majewski <l.majewski@xxxxxxxxxxx> > --- > drivers/thermal/of-thermal.c | 12 ++++++++++++ > drivers/thermal/thermal_core.h | 5 +++++ > 2 files changed, 17 insertions(+) > > diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c > index 23c8d6c..cd74e64 100644 > --- a/drivers/thermal/of-thermal.c > +++ b/drivers/thermal/of-thermal.c > @@ -128,6 +128,18 @@ int of_thermal_is_trip_en(struct thermal_zone_device *tz, int trip) > return 1; > } > > +int of_thermal_get_non_crit_ntrips(struct thermal_zone_device *tz) > +{ > + struct __thermal_zone *data = tz->devdata; > + int i; > + > + for (i = 0; i < data->ntrips; i++) > + if (data->trips[i].type != THERMAL_TRIP_CRITICAL) > + continue; > + > + return --i; > +} > + I am not against this addition. But looks like we start to spread some specific APIs that may not be used to other drivers. Maybe having a single API to provide a read-only copy the list / array of trips might be a better approach. I will think of a better way. I also request you to document it accordingly. > static int of_thermal_get_trend(struct thermal_zone_device *tz, int trip, > enum thermal_trend *trend) > { > diff --git a/drivers/thermal/thermal_core.h b/drivers/thermal/thermal_core.h > index ed8ff05..334a7be 100644 > --- a/drivers/thermal/thermal_core.h > +++ b/drivers/thermal/thermal_core.h > @@ -83,6 +83,7 @@ int of_parse_thermal_zones(void); > void of_thermal_destroy_zones(void); > int of_thermal_get_ntrips(struct thermal_zone_device *); > int of_thermal_is_trip_en(struct thermal_zone_device *, int); > +int of_thermal_get_non_crit_ntrips(struct thermal_zone_device *); > #else > static inline int of_parse_thermal_zones(void) { return 0; } > static inline void of_thermal_destroy_zones(void) { } > @@ -94,6 +95,10 @@ int of_thermal_is_trip_en(struct thermal_zone_device *, int) > { > return 0; > } > +int of_thermal_get_non_crit_ntrips(struct thermal_zone_device *) here, it is supposed to be static inline. > +{ > + return 0; > +} > #endif > > #endif /* __THERMAL_CORE_H__ */ > -- > 2.0.0.rc2 >
Attachment:
signature.asc
Description: Digital signature