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 <[email protected]> > --- > 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
>
signature.asc
Description: Digital signature
