Re: [PATCH v3 1/5] thermal: of: Extend of-thermal.c to provide number of trip points

From: Eduardo Valentin
Date: Mon Dec 08 2014 - 15:01:34 EST


On Mon, Dec 08, 2014 at 06:04:17PM +0100, Lukasz Majewski wrote:
> This patch extends the of-thermal.c to provide information about number of
> available trip points.
>
> Signed-off-by: Lukasz Majewski <l.majewski@xxxxxxxxxxx>
> ---
> Changes for v3:
> - Exporting of_thermal_get_ntrips symbol as a GPL
> - Fix build error when CONFIG_THERMAL_OF is disabled
>
> Changes for v2:
> - Provide detailed (doxygen like) description of the of_thermal_get_ntrips()
> method
> - Check for data pointer not being NULL
> ---
> drivers/thermal/of-thermal.c | 21 +++++++++++++++++++++
> drivers/thermal/thermal_core.h | 5 +++++
> 2 files changed, 26 insertions(+)
>
> diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
> index b7982f0..7facd23 100644
> --- a/drivers/thermal/of-thermal.c
> +++ b/drivers/thermal/of-thermal.c
> @@ -112,6 +112,27 @@ static int of_thermal_get_temp(struct thermal_zone_device *tz,
> return data->ops->get_temp(data->sensor_data, temp);
> }
>
> +/**
> + * of_thermal_get_ntrips - function to export number of available trip
> + * points.
> + * @tz: pointer to a thermal zone
> + *
> + * This function is a globally visible wrapper to get number of trip points
> + * stored in the local struct __thermal_zone
> + *
> + * Return: number of available trip points, -ENODEV when data not available
> + */
> +int of_thermal_get_ntrips(struct thermal_zone_device *tz)
> +{
> + struct __thermal_zone *data = tz->devdata;
> +
> + if (!data || IS_ERR(data))
> + return -ENODEV;
> +
> + return data->ntrips;
> +}
> +EXPORT_SYMBOL_GPL(of_thermal_get_ntrips);
> +
> 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 d15d243..1cc5041 100644
> --- a/drivers/thermal/thermal_core.h
> +++ b/drivers/thermal/thermal_core.h
> @@ -89,9 +89,14 @@ static inline void thermal_gov_user_space_unregister(void) {}
> #ifdef CONFIG_THERMAL_OF
> int of_parse_thermal_zones(void);
> void of_thermal_destroy_zones(void);
> +int of_thermal_get_ntrips(struct thermal_zone_device *);

Lukasz,

Here is a question that applies to all patches in this series adding
functions in this header.

i suppose you intend to use these new functions in driver code, right?
Add them here, will limit their usage to code inside drivers/thermal.

Shouldn't these new APIs be declared under include/linux/thermal.h?

This way, they can be be available to other parts of the kernel too.


> #else
> static inline int of_parse_thermal_zones(void) { return 0; }
> static inline void of_thermal_destroy_zones(void) { }
> +static inline int of_thermal_get_ntrips(struct thermal_zone_device *tz)
> +{
> + return 0;
> +}
> #endif
>
> #endif /* __THERMAL_CORE_H__ */
> --
> 2.0.0.rc2
>

Attachment: signature.asc
Description: Digital signature