All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Jamie Iles <jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>
Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: Re: [PATCH] dt: add helper to read 64-bit integers
Date: Wed, 03 Aug 2011 11:38:21 -0500	[thread overview]
Message-ID: <4E39797D.2030005@gmail.com> (raw)
In-Reply-To: <20110803163344.GP2607-apL1N+EY0C9YtYNIL7UdTEEOCMrvLtNR@public.gmane.org>

On 08/03/2011 11:33 AM, Jamie Iles wrote:
> On Wed, Aug 03, 2011 at 11:17:14AM -0500, Rob Herring wrote:
>> On 08/03/2011 08:44 AM, Jamie Iles wrote:
>>> Add a helper similar to of_property_read_u32() that handles 64-bit
>>> integers.
>>>
>>> v2: constify device node and property name parameters.
>>>
>>> Cc: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
>>> Signed-off-by: Jamie Iles <jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>
>>> ---
>>>  drivers/of/base.c  |   28 ++++++++++++++++++++++++++++
>>>  include/linux/of.h |    8 ++++++++
>>>  2 files changed, 36 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/drivers/of/base.c b/drivers/of/base.c
>>> index 3ff22e3..3808e70 100644
>>> --- a/drivers/of/base.c
>>> +++ b/drivers/of/base.c
>>> @@ -632,6 +632,34 @@ int of_property_read_u32_array(const struct device_node *np,
>>>  EXPORT_SYMBOL_GPL(of_property_read_u32_array);
>>>  
>>>  /**
>>> + * of_property_read_u64 - Find and read a 64 bit integer from a property
>>> + * @np:		device node from which the property value is to be read.
>>> + * @propname:	name of the property to be searched.
>>> + * @out_value:	pointer to return value, modified only if return value is 0.
>>> + *
>>> + * Search for a property in a device node and read a 64-bit value from
>>> + * it. Returns 0 on success, -EINVAL if the property does not exist,
>>> + * -ENODATA if property does not have a value, and -EOVERFLOW if the
>>> + * property data isn't large enough.
>>> + *
>>> + * The out_value is modified only if a valid u64 value can be decoded.
>>> + */
>>> +int of_property_read_u64(struct device_node *np, char *propname, u64 *out_value)
>>
>> Missed a const here...
> 
> Doh!  Not sure how I missed that, thanks Rob!  Revised patch below.
> 
> Jamie
> 
> 8<--------
> 
> Date: Wed, 3 Aug 2011 14:44:33 +0100
> Subject: [PATCH] dt: add helper to read 64-bit integers
> 
> Add a helper similar to of_property_read_u32() that handles 64-bit
> integers.
> 
> v2/v3: constify device node and property name parameters.
> 
> Cc: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
> Signed-off-by: Jamie Iles <jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>

Reviewed-by: Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>

> ---
>  drivers/of/base.c  |   29 +++++++++++++++++++++++++++++
>  include/linux/of.h |    8 ++++++++
>  2 files changed, 37 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 3ff22e3..9361cfe 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -632,6 +632,35 @@ int of_property_read_u32_array(const struct device_node *np,
>  EXPORT_SYMBOL_GPL(of_property_read_u32_array);
>  
>  /**
> + * of_property_read_u64 - Find and read a 64 bit integer from a property
> + * @np:		device node from which the property value is to be read.
> + * @propname:	name of the property to be searched.
> + * @out_value:	pointer to return value, modified only if return value is 0.
> + *
> + * Search for a property in a device node and read a 64-bit value from
> + * it. Returns 0 on success, -EINVAL if the property does not exist,
> + * -ENODATA if property does not have a value, and -EOVERFLOW if the
> + * property data isn't large enough.
> + *
> + * The out_value is modified only if a valid u64 value can be decoded.
> + */
> +int of_property_read_u64(const struct device_node *np, const char *propname,
> +			 u64 *out_value)
> +{
> +	struct property *prop = of_find_property(np, propname, NULL);
> +
> +	if (!prop)
> +		return -EINVAL;
> +	if (!prop->value)
> +		return -ENODATA;
> +	if (sizeof(*out_value) > prop->length)
> +		return -EOVERFLOW;
> +	*out_value = of_read_number(prop->value, 2);
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(of_property_read_u64);
> +
> +/**
>   * of_property_read_string - Find and read a string from a property
>   * @np:		device node from which the property value is to be read.
>   * @propname:	name of the property to be searched.
> diff --git a/include/linux/of.h b/include/linux/of.h
> index 0085bb0..d1b98c0 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -199,6 +199,8 @@ extern int of_property_read_u32_array(const struct device_node *np,
>  				      const char *propname,
>  				      u32 *out_values,
>  				      size_t sz);
> +extern int of_property_read_u64(const struct device_node *np,
> +				const char *propname, u64 *out_value);
>  
>  extern int of_property_read_string(struct device_node *np,
>  				   const char *propname,
> @@ -256,6 +258,12 @@ static inline int of_property_read_string(struct device_node *np,
>  	return -ENOSYS;
>  }
>  
> +static inline int of_property_read_u64(const struct device_node *np,
> +				       const char *propname, u64 *out_value)
> +{
> +	return -ENOSYS;
> +}
> +
>  #endif /* CONFIG_OF */
>  
>  static inline int of_property_read_u32(const struct device_node *np,

  parent reply	other threads:[~2011-08-03 16:38 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-03 13:44 [PATCH] dt: add helper to read 64-bit integers Jamie Iles
     [not found] ` <1312379073-13502-1-git-send-email-jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>
2011-08-03 16:17   ` Rob Herring
     [not found]     ` <4E39748A.3030002-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-08-03 16:33       ` Jamie Iles
     [not found]         ` <20110803163344.GP2607-apL1N+EY0C9YtYNIL7UdTEEOCMrvLtNR@public.gmane.org>
2011-08-03 16:38           ` Rob Herring [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-08-02 11:06 Jamie Iles
     [not found] ` <1312283219-27045-1-git-send-email-jamie-wmLquQDDieKakBO8gow8eQ@public.gmane.org>
2011-08-02 19:16   ` Rob Herring

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=4E39797D.2030005@gmail.com \
    --to=robherring2-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=jamie-wmLquQDDieKakBO8gow8eQ@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.