linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eduardo Valentin <eduardo.valentin-l0cyMroinI0@public.gmane.org>
To: Wei Ni <wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Cc: eduardo.valentin-l0cyMroinI0@public.gmane.org,
	rui.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	mark.rutland-5wv7dgnIgG8@public.gmane.org,
	durgadoss.r-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	MLongnecker-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org,
	linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v2 1/2] thermal: introduce thermal_zone_get_zone_by_node helper function
Date: Mon, 13 Jan 2014 12:05:26 -0400	[thread overview]
Message-ID: <52D40EC6.6050509@ti.com> (raw)
In-Reply-To: <1389263879-10483-2-git-send-email-wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 4502 bytes --]

On 09-01-2014 06:37, Wei Ni wrote:
> The thermal framework start to support device tree, this
> patch adds a helper function to get a reference of a
> thermal zone, based on the zone's device node.

I would prefer if you could provide a better justification why we need
this API. Think of the scope of this API: would it be used only by the
of-thermal code? only by the drivers/thermal code? or any driver?

So far you have provided only one user, and that user can already work
with existing APIs. As I mention, DT does not support name duplications.

Unless you enlighten  me with better uses of this API, I would prefer
not to have it.


> 
> It will add a device_node *np member in the struct
> thermal_zone_device, and initialize it when create a thermal
> zone. This funciton perform a zone device node lookup and
> return a reference to a thermal zone device that matches
> the device node requested.
> In case the zone is not found or if the required parameters
> are invalid, it will return the corresponding error code (ERR_PTR).
> 
> Change-Id: I4d65f849e84425dddd387f70886a9c7c4c2002f2

For your next patches, please done include gerrit change IDs. Linux
Kernel does not need to be linked to your inhouse development history
via gerrit IDs.

> Signed-off-by: Wei Ni <wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> ---
>  drivers/thermal/of-thermal.c   |    2 ++
>  drivers/thermal/thermal_core.c |   33 +++++++++++++++++++++++++++++++++
>  include/linux/thermal.h        |    3 +++
>  3 files changed, 38 insertions(+)
> 
> diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
> index 04b1be7..53f2d3a 100644
> --- a/drivers/thermal/of-thermal.c
> +++ b/drivers/thermal/of-thermal.c
> @@ -804,6 +804,8 @@ int __init of_parse_thermal_zones(void)
>  			of_thermal_free_zone(tz);
>  			/* attempting to build remaining zones still */
>  		}
> +
> +		zone->np = child;
>  	}
>  
>  	return 0;
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index 338a88b..eeddb94 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -1672,6 +1672,39 @@ exit:
>  }
>  EXPORT_SYMBOL_GPL(thermal_zone_get_zone_by_name);
>  
> +/**
> +* thermal_zone_get_zone_by_node() - search for a zone and returns its ref
> +* @node: device node of the thermal zone
> +*
> +* When thermal zone is found with the passed device node, returns a reference
> +* to it.
> +*
> +* Return: On success returns a reference to an unique thermal zone with
> +* matching device node, an ERR_PTR otherwise (-EINVAL for invalid
> +* paramenters, -ENODEV for not found).
> +*/
> +struct thermal_zone_device *
> +thermal_zone_get_zone_by_node(struct device_node *node)
> +{
> +	struct thermal_zone_device *pos = NULL, *ref = ERR_PTR(-ENODEV);
> +	bool found = false;
> +
> +	if (!node)
> +		return ERR_PTR(-EINVAL);
> +
> +	mutex_lock(&thermal_list_lock);
> +	list_for_each_entry(pos, &thermal_tz_list, node)
> +		if (node == pos->np) {
> +			ref = pos;
> +			found = true;
> +			break;
> +		}
> +	mutex_unlock(&thermal_list_lock);
> +
> +	return ref;
> +}
> +EXPORT_SYMBOL_GPL(thermal_zone_get_zone_by_node);
> +
>  #ifdef CONFIG_NET
>  static const struct genl_multicast_group thermal_event_mcgrps[] = {
>  	{ .name = THERMAL_GENL_MCAST_GROUP_NAME, },
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index f7e11c7..288d272 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -162,6 +162,7 @@ struct thermal_zone_device {
>  	int id;
>  	char type[THERMAL_NAME_LENGTH];
>  	struct device device;
> +	struct device_node *np;
>  	struct thermal_attr *trip_temp_attrs;
>  	struct thermal_attr *trip_type_attrs;
>  	struct thermal_attr *trip_hyst_attrs;
> @@ -286,6 +287,8 @@ thermal_of_cooling_device_register(struct device_node *np, char *, void *,
>  				   const struct thermal_cooling_device_ops *);
>  void thermal_cooling_device_unregister(struct thermal_cooling_device *);
>  struct thermal_zone_device *thermal_zone_get_zone_by_name(const char *name);
> +struct thermal_zone_device *
> +thermal_zone_get_zone_by_node(struct device_node *node);
>  int thermal_zone_get_temp(struct thermal_zone_device *tz, unsigned long *temp);
>  
>  int get_tz_trend(struct thermal_zone_device *, int);
> 


-- 
You have got to be excited about what you are doing. (L. Lamport)

Eduardo Valentin


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 295 bytes --]

  parent reply	other threads:[~2014-01-13 16:05 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-09 10:37 [PATCH v2 0/2] Intruduce thermal_zone_get_zone_by_node Wei Ni
2014-01-09 10:37 ` [PATCH v2 1/2] thermal: introduce thermal_zone_get_zone_by_node helper function Wei Ni
     [not found]   ` <1389263879-10483-2-git-send-email-wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-01-13 16:05     ` Eduardo Valentin [this message]
     [not found]       ` <52D40EC6.6050509-l0cyMroinI0@public.gmane.org>
2014-01-14 10:35         ` Wei Ni
     [not found]           ` <52D512F1.1090008-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-01-14 15:30             ` Eduardo Valentin
     [not found]               ` <52D5582F.5000807-l0cyMroinI0@public.gmane.org>
2014-01-15 11:52                 ` Wei Ni
     [not found]                   ` <52D6766D.6080100-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-01-15 14:09                     ` Eduardo Valentin
     [not found]                       ` <52D6967C.9010305-l0cyMroinI0@public.gmane.org>
2014-01-17  7:38                         ` Wei Ni
     [not found] ` <1389263879-10483-1-git-send-email-wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-01-09 10:37   ` [PATCH v2 2/2] thermal: use device node to get thermal zone Wei Ni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52D40EC6.6050509@ti.com \
    --to=eduardo.valentin-l0cymroini0@public.gmane.org \
    --cc=MLongnecker-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=durgadoss.r-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=rui.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).