From: heiko@sntech.de (Heiko Stübner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4] of: add functions to count number of elements in a property
Date: Sat, 18 Jan 2014 16:28:51 +0100 [thread overview]
Message-ID: <1812408.EavpSnUyy3@phil> (raw)
In-Reply-To: <CAL_JsqJord1OOjwcKk1jqF5o+XO3uw+Lc4ATtQacgwZWAoQq1g@mail.gmail.com>
Am Samstag, 18. Januar 2014, 09:07:30 schrieb Rob Herring:
> On Sat, Jan 18, 2014 at 6:02 AM, Heiko St?bner <heiko@sntech.de> wrote:
> > The need to know the number of array elements in a property is
> > a common pattern. To prevent duplication of open-coded implementations
> > add a helper static function that also centralises strict sanity
> > checking and DTB format details, as well as a set of wrapper functions
> > for u8, u16, u32 and u64.
> >
> > Suggested-by: Mark Rutland <mark.rutland@arm.com>
> > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> > ---
>
> Looks good. Do you plan to convert some users to use this?
My plan at the moment was to "just" use it for my mmio-sram-reserve stuff -
just wanted to make sure that this change is sane, before having to sent the
whole thing for each iteration.
I haven't yet looked where the other users, that Mark mentioned, are at :-)
Heiko
> > changes since v3:
> > address more comments from Rob Herring
> > - export the base function and inline the type-specific wrappers
> > changes since v2:
> > address more comments from Mark Rutland
> > - switch to of_property_count_elems_of_size
> > - use full_name instead of name in error message
> > changes since v1:
> > address comments from Rob Herring and Mark Rutland:
> > - provide a helper and a set of wrappers for u8-u64
> > - get rid of extra len variable, prop->length is enough
> > - include node name in error message
> >
> > Mark, does your Reviewed-by holds for this variant too?
> >
> > drivers/of/base.c | 32 ++++++++++++++++++++++
> > include/linux/of.h | 76
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed,
> > 108 insertions(+)
> >
> > diff --git a/drivers/of/base.c b/drivers/of/base.c
> > index f807d0e..21646c0 100644
> > --- a/drivers/of/base.c
> > +++ b/drivers/of/base.c
> > @@ -862,6 +862,38 @@ struct device_node *of_find_node_by_phandle(phandle
> > handle)>
> > EXPORT_SYMBOL(of_find_node_by_phandle);
> >
> > /**
> >
> > + * of_property_count_elems_of_size - Count the number of elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + * @elem_size: size of the individual element
> > + *
> > + * Search for a property in a device node and count the number of
> > elements of + * size elem_size in it. Returns number of elements on
> > sucess, -EINVAL if the + * property does not exist or its length does not
> > match a multiple of u16 and + * -ENODATA if the property does not have a
> > value.
> > + */
> > +int of_property_count_elems_of_size(const struct device_node *np,
> > + const char *propname, int elem_size)
> > +{
> > + struct property *prop = of_find_property(np, propname, NULL);
> > +
> > + if (!prop)
> > + return -EINVAL;
> > + if (!prop->value)
> > + return -ENODATA;
> > +
> > + if (prop->length % elem_size != 0) {
> > + pr_err("size of %s in node %s is not a multiple of %d\n",
> > + propname, np->full_name, elem_size);
> > + return -EINVAL;
> > + }
> > +
> > + return prop->length / elem_size;
> > +}
> > +EXPORT_SYMBOL_GPL(of_property_count_elems_of_size);
> > +
> > +/**
> >
> > * of_find_property_value_of_size
> > *
> > * @np: device node from which the property value is to be
> > read.>
> > diff --git a/include/linux/of.h b/include/linux/of.h
> > index 276c546..293920d 100644
> > --- a/include/linux/of.h
> > +++ b/include/linux/of.h
> > @@ -250,6 +250,8 @@ extern struct device_node *of_find_node_with_property(
> >
> > extern struct property *of_find_property(const struct device_node *np,
> >
> > const char *name,
> > int *lenp);
> >
> > +extern int of_property_count_elems_of_size(const struct device_node *np,
> > + const char *propname, int elem_size);
> >
> > extern int of_property_read_u32_index(const struct device_node *np,
> >
> > const char *propname,
> > u32 index, u32 *out_value);
> >
> > @@ -426,6 +428,12 @@ static inline struct device_node
> > *of_find_compatible_node(>
> > return NULL;
> >
> > }
> >
> > +static inline int of_property_count_elems_of_size(const struct
> > device_node *np, + const char *propname, int
> > elem_size)
> > +{
> > + return -ENOSYS;
> > +}
> > +
> >
> > static inline int of_property_read_u32_index(const struct device_node
> > *np,
> >
> > const char *propname, u32 index, u32 *out_value)
> >
> > {
> >
> > @@ -565,6 +573,74 @@ static inline int of_node_to_nid(struct device_node
> > *device) { return 0; }>
> > #endif
> >
> > /**
> >
> > + * of_property_count_u8_elems - Count the number of u8 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u8
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of u8
> > and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u8_elems(const struct device_node
> > *np,
> > + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u8));
> > +}
> > +
> > +/**
> > + * of_property_count_u16_elems - Count the number of u16 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u16
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of
> > u16 and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u16_elems(const struct device_node
> > *np, + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u16));
> > +}
> > +
> > +/**
> > + * of_property_count_u32_elems - Count the number of u32 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u32
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of
> > u32 and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u32_elems(const struct device_node
> > *np, + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u32));
> > +}
> > +
> > +/**
> > + * of_property_count_u64_elems - Count the number of u64 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u64
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of
> > u64 and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u64_elems(const struct device_node
> > *np, + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u64));
> > +}
> > +
> > +/**
> >
> > * of_property_read_bool - Findfrom a property
> > * @np: device node from which the property value is to be
> > read. * @propname: name of the property to be searched.
> >
> > --
> > 1.7.10.4
WARNING: multiple messages have this Message-ID (diff)
From: "Heiko Stübner" <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
To: Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Pawel Moll <Pawel.Moll-5wv7dgnIgG8@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
"grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
Ian Campbell
<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>
Subject: Re: [PATCH v4] of: add functions to count number of elements in a property
Date: Sat, 18 Jan 2014 16:28:51 +0100 [thread overview]
Message-ID: <1812408.EavpSnUyy3@phil> (raw)
In-Reply-To: <CAL_JsqJord1OOjwcKk1jqF5o+XO3uw+Lc4ATtQacgwZWAoQq1g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
Am Samstag, 18. Januar 2014, 09:07:30 schrieb Rob Herring:
> On Sat, Jan 18, 2014 at 6:02 AM, Heiko Stübner <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org> wrote:
> > The need to know the number of array elements in a property is
> > a common pattern. To prevent duplication of open-coded implementations
> > add a helper static function that also centralises strict sanity
> > checking and DTB format details, as well as a set of wrapper functions
> > for u8, u16, u32 and u64.
> >
> > Suggested-by: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
> > Signed-off-by: Heiko Stuebner <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
> > ---
>
> Looks good. Do you plan to convert some users to use this?
My plan at the moment was to "just" use it for my mmio-sram-reserve stuff -
just wanted to make sure that this change is sane, before having to sent the
whole thing for each iteration.
I haven't yet looked where the other users, that Mark mentioned, are at :-)
Heiko
> > changes since v3:
> > address more comments from Rob Herring
> > - export the base function and inline the type-specific wrappers
> > changes since v2:
> > address more comments from Mark Rutland
> > - switch to of_property_count_elems_of_size
> > - use full_name instead of name in error message
> > changes since v1:
> > address comments from Rob Herring and Mark Rutland:
> > - provide a helper and a set of wrappers for u8-u64
> > - get rid of extra len variable, prop->length is enough
> > - include node name in error message
> >
> > Mark, does your Reviewed-by holds for this variant too?
> >
> > drivers/of/base.c | 32 ++++++++++++++++++++++
> > include/linux/of.h | 76
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed,
> > 108 insertions(+)
> >
> > diff --git a/drivers/of/base.c b/drivers/of/base.c
> > index f807d0e..21646c0 100644
> > --- a/drivers/of/base.c
> > +++ b/drivers/of/base.c
> > @@ -862,6 +862,38 @@ struct device_node *of_find_node_by_phandle(phandle
> > handle)>
> > EXPORT_SYMBOL(of_find_node_by_phandle);
> >
> > /**
> >
> > + * of_property_count_elems_of_size - Count the number of elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + * @elem_size: size of the individual element
> > + *
> > + * Search for a property in a device node and count the number of
> > elements of + * size elem_size in it. Returns number of elements on
> > sucess, -EINVAL if the + * property does not exist or its length does not
> > match a multiple of u16 and + * -ENODATA if the property does not have a
> > value.
> > + */
> > +int of_property_count_elems_of_size(const struct device_node *np,
> > + const char *propname, int elem_size)
> > +{
> > + struct property *prop = of_find_property(np, propname, NULL);
> > +
> > + if (!prop)
> > + return -EINVAL;
> > + if (!prop->value)
> > + return -ENODATA;
> > +
> > + if (prop->length % elem_size != 0) {
> > + pr_err("size of %s in node %s is not a multiple of %d\n",
> > + propname, np->full_name, elem_size);
> > + return -EINVAL;
> > + }
> > +
> > + return prop->length / elem_size;
> > +}
> > +EXPORT_SYMBOL_GPL(of_property_count_elems_of_size);
> > +
> > +/**
> >
> > * of_find_property_value_of_size
> > *
> > * @np: device node from which the property value is to be
> > read.>
> > diff --git a/include/linux/of.h b/include/linux/of.h
> > index 276c546..293920d 100644
> > --- a/include/linux/of.h
> > +++ b/include/linux/of.h
> > @@ -250,6 +250,8 @@ extern struct device_node *of_find_node_with_property(
> >
> > extern struct property *of_find_property(const struct device_node *np,
> >
> > const char *name,
> > int *lenp);
> >
> > +extern int of_property_count_elems_of_size(const struct device_node *np,
> > + const char *propname, int elem_size);
> >
> > extern int of_property_read_u32_index(const struct device_node *np,
> >
> > const char *propname,
> > u32 index, u32 *out_value);
> >
> > @@ -426,6 +428,12 @@ static inline struct device_node
> > *of_find_compatible_node(>
> > return NULL;
> >
> > }
> >
> > +static inline int of_property_count_elems_of_size(const struct
> > device_node *np, + const char *propname, int
> > elem_size)
> > +{
> > + return -ENOSYS;
> > +}
> > +
> >
> > static inline int of_property_read_u32_index(const struct device_node
> > *np,
> >
> > const char *propname, u32 index, u32 *out_value)
> >
> > {
> >
> > @@ -565,6 +573,74 @@ static inline int of_node_to_nid(struct device_node
> > *device) { return 0; }>
> > #endif
> >
> > /**
> >
> > + * of_property_count_u8_elems - Count the number of u8 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u8
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of u8
> > and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u8_elems(const struct device_node
> > *np,
> > + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u8));
> > +}
> > +
> > +/**
> > + * of_property_count_u16_elems - Count the number of u16 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u16
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of
> > u16 and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u16_elems(const struct device_node
> > *np, + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u16));
> > +}
> > +
> > +/**
> > + * of_property_count_u32_elems - Count the number of u32 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u32
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of
> > u32 and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u32_elems(const struct device_node
> > *np, + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u32));
> > +}
> > +
> > +/**
> > + * of_property_count_u64_elems - Count the number of u64 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u64
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of
> > u64 and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u64_elems(const struct device_node
> > *np, + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u64));
> > +}
> > +
> > +/**
> >
> > * of_property_read_bool - Findfrom a property
> > * @np: device node from which the property value is to be
> > read. * @propname: name of the property to be searched.
> >
> > --
> > 1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: "Heiko Stübner" <heiko@sntech.de>
To: Rob Herring <robherring2@gmail.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
Pawel Moll <Pawel.Moll@arm.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"grant.likely@linaro.org" <grant.likely@linaro.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Stephen Warren <swarren@wwwdotorg.org>,
Ian Campbell <ijc+devicetree@hellion.org.uk>
Subject: Re: [PATCH v4] of: add functions to count number of elements in a property
Date: Sat, 18 Jan 2014 16:28:51 +0100 [thread overview]
Message-ID: <1812408.EavpSnUyy3@phil> (raw)
In-Reply-To: <CAL_JsqJord1OOjwcKk1jqF5o+XO3uw+Lc4ATtQacgwZWAoQq1g@mail.gmail.com>
Am Samstag, 18. Januar 2014, 09:07:30 schrieb Rob Herring:
> On Sat, Jan 18, 2014 at 6:02 AM, Heiko Stübner <heiko@sntech.de> wrote:
> > The need to know the number of array elements in a property is
> > a common pattern. To prevent duplication of open-coded implementations
> > add a helper static function that also centralises strict sanity
> > checking and DTB format details, as well as a set of wrapper functions
> > for u8, u16, u32 and u64.
> >
> > Suggested-by: Mark Rutland <mark.rutland@arm.com>
> > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> > ---
>
> Looks good. Do you plan to convert some users to use this?
My plan at the moment was to "just" use it for my mmio-sram-reserve stuff -
just wanted to make sure that this change is sane, before having to sent the
whole thing for each iteration.
I haven't yet looked where the other users, that Mark mentioned, are at :-)
Heiko
> > changes since v3:
> > address more comments from Rob Herring
> > - export the base function and inline the type-specific wrappers
> > changes since v2:
> > address more comments from Mark Rutland
> > - switch to of_property_count_elems_of_size
> > - use full_name instead of name in error message
> > changes since v1:
> > address comments from Rob Herring and Mark Rutland:
> > - provide a helper and a set of wrappers for u8-u64
> > - get rid of extra len variable, prop->length is enough
> > - include node name in error message
> >
> > Mark, does your Reviewed-by holds for this variant too?
> >
> > drivers/of/base.c | 32 ++++++++++++++++++++++
> > include/linux/of.h | 76
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed,
> > 108 insertions(+)
> >
> > diff --git a/drivers/of/base.c b/drivers/of/base.c
> > index f807d0e..21646c0 100644
> > --- a/drivers/of/base.c
> > +++ b/drivers/of/base.c
> > @@ -862,6 +862,38 @@ struct device_node *of_find_node_by_phandle(phandle
> > handle)>
> > EXPORT_SYMBOL(of_find_node_by_phandle);
> >
> > /**
> >
> > + * of_property_count_elems_of_size - Count the number of elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + * @elem_size: size of the individual element
> > + *
> > + * Search for a property in a device node and count the number of
> > elements of + * size elem_size in it. Returns number of elements on
> > sucess, -EINVAL if the + * property does not exist or its length does not
> > match a multiple of u16 and + * -ENODATA if the property does not have a
> > value.
> > + */
> > +int of_property_count_elems_of_size(const struct device_node *np,
> > + const char *propname, int elem_size)
> > +{
> > + struct property *prop = of_find_property(np, propname, NULL);
> > +
> > + if (!prop)
> > + return -EINVAL;
> > + if (!prop->value)
> > + return -ENODATA;
> > +
> > + if (prop->length % elem_size != 0) {
> > + pr_err("size of %s in node %s is not a multiple of %d\n",
> > + propname, np->full_name, elem_size);
> > + return -EINVAL;
> > + }
> > +
> > + return prop->length / elem_size;
> > +}
> > +EXPORT_SYMBOL_GPL(of_property_count_elems_of_size);
> > +
> > +/**
> >
> > * of_find_property_value_of_size
> > *
> > * @np: device node from which the property value is to be
> > read.>
> > diff --git a/include/linux/of.h b/include/linux/of.h
> > index 276c546..293920d 100644
> > --- a/include/linux/of.h
> > +++ b/include/linux/of.h
> > @@ -250,6 +250,8 @@ extern struct device_node *of_find_node_with_property(
> >
> > extern struct property *of_find_property(const struct device_node *np,
> >
> > const char *name,
> > int *lenp);
> >
> > +extern int of_property_count_elems_of_size(const struct device_node *np,
> > + const char *propname, int elem_size);
> >
> > extern int of_property_read_u32_index(const struct device_node *np,
> >
> > const char *propname,
> > u32 index, u32 *out_value);
> >
> > @@ -426,6 +428,12 @@ static inline struct device_node
> > *of_find_compatible_node(>
> > return NULL;
> >
> > }
> >
> > +static inline int of_property_count_elems_of_size(const struct
> > device_node *np, + const char *propname, int
> > elem_size)
> > +{
> > + return -ENOSYS;
> > +}
> > +
> >
> > static inline int of_property_read_u32_index(const struct device_node
> > *np,
> >
> > const char *propname, u32 index, u32 *out_value)
> >
> > {
> >
> > @@ -565,6 +573,74 @@ static inline int of_node_to_nid(struct device_node
> > *device) { return 0; }>
> > #endif
> >
> > /**
> >
> > + * of_property_count_u8_elems - Count the number of u8 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u8
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of u8
> > and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u8_elems(const struct device_node
> > *np,
> > + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u8));
> > +}
> > +
> > +/**
> > + * of_property_count_u16_elems - Count the number of u16 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u16
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of
> > u16 and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u16_elems(const struct device_node
> > *np, + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u16));
> > +}
> > +
> > +/**
> > + * of_property_count_u32_elems - Count the number of u32 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u32
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of
> > u32 and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u32_elems(const struct device_node
> > *np, + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u32));
> > +}
> > +
> > +/**
> > + * of_property_count_u64_elems - Count the number of u64 elements in a
> > property + *
> > + * @np: device node from which the property value is to be
> > read. + * @propname: name of the property to be searched.
> > + *
> > + * Search for a property in a device node and count the number of u64
> > elements + * in it. Returns number of elements on sucess, -EINVAL if the
> > property does + * not exist or its length does not match a multiple of
> > u64 and -ENODATA if the + * property does not have a value.
> > + */
> > +static inline int of_property_count_u64_elems(const struct device_node
> > *np, + const char *propname)
> > +{
> > + return of_property_count_elems_of_size(np, propname, sizeof(u64));
> > +}
> > +
> > +/**
> >
> > * of_property_read_bool - Findfrom a property
> > * @np: device node from which the property value is to be
> > read. * @propname: name of the property to be searched.
> >
> > --
> > 1.7.10.4
next prev parent reply other threads:[~2014-01-18 15:28 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-15 21:40 [PATCH v6 0/6] ARM: rockchip: add smp functionality Heiko Stübner
2014-01-15 21:40 ` Heiko Stübner
2014-01-15 21:40 ` Heiko Stübner
2014-01-15 21:40 ` [PATCH v6 1/6] dt-bindings: sram: describe option to reserve parts of the memory Heiko Stübner
2014-01-15 21:40 ` Heiko Stübner
2014-01-16 14:36 ` Rob Herring
2014-01-16 14:36 ` Rob Herring
2014-01-16 14:36 ` Rob Herring
2014-01-15 21:41 ` [PATCH v6 2/6] misc: sram: implement mmio-sram-reserved option Heiko Stübner
2014-01-15 21:41 ` Heiko Stübner
2014-01-16 12:45 ` Mark Rutland
2014-01-16 12:45 ` Mark Rutland
2014-01-16 18:04 ` [PATCH] of: add function to count number of u32 elements in a property Heiko Stübner
2014-01-16 18:04 ` Heiko Stübner
2014-01-17 14:29 ` Rob Herring
2014-01-17 14:29 ` Rob Herring
2014-01-17 14:29 ` Rob Herring
2014-01-17 14:44 ` Mark Rutland
2014-01-17 14:44 ` Mark Rutland
2014-01-17 14:44 ` Mark Rutland
2014-01-17 15:44 ` [PATCH v2] of: add functions to count number of " Heiko Stübner
2014-01-17 15:44 ` Heiko Stübner
2014-01-17 15:44 ` Heiko Stübner
[not found] ` < CAL_JsqJ_St=OegpexzrTGXwmOYCz4YeWk_1S+R_q6NajmmPqSA@mail.gmail.com>
[not found] ` < 5115255.DrcMbtXc1P@phil>
[not found] ` < CAL_JsqJord1OOjwcKk1jqF5o+XO3uw+Lc4ATtQacgwZWAoQq1g@mail.gmail.com>
2014-01-17 16:53 ` Mark Rutland
2014-01-17 16:53 ` Mark Rutland
2014-01-17 16:53 ` Mark Rutland
2014-01-17 17:27 ` [PATCH v3] " Heiko Stübner
2014-01-17 17:27 ` Heiko Stübner
2014-01-17 17:27 ` Heiko Stübner
2014-01-17 17:42 ` [PATCH v2] " Rob Herring
2014-01-17 17:42 ` Rob Herring
2014-01-17 17:42 ` Rob Herring
2014-01-18 12:02 ` [PATCH v4] " Heiko Stübner
2014-01-18 12:02 ` Heiko Stübner
2014-01-18 12:02 ` Heiko Stübner
2014-01-18 15:07 ` Rob Herring
2014-01-18 15:07 ` Rob Herring
2014-01-18 15:07 ` Rob Herring
2014-01-18 15:28 ` Heiko Stübner [this message]
2014-01-18 15:28 ` Heiko Stübner
2014-01-18 15:28 ` Heiko Stübner
2014-02-04 17:30 ` Grant Likely
2014-02-04 17:30 ` Grant Likely
2014-02-04 18:48 ` Heiko Stübner
2014-02-04 18:48 ` Heiko Stübner
2014-02-04 18:48 ` Heiko Stübner
2014-02-05 12:06 ` Grant Likely
2014-02-05 12:06 ` Grant Likely
2014-02-05 12:45 ` Heiko Stübner
2014-02-05 12:45 ` Heiko Stübner
2014-02-05 12:45 ` Heiko Stübner
2014-02-05 13:47 ` Grant Likely
2014-02-05 13:47 ` Grant Likely
2014-01-15 21:42 ` [PATCH v6 3/6] ARM: rockchip: add snoop-control-unit Heiko Stübner
2014-01-15 21:42 ` Heiko Stübner
2014-01-15 21:42 ` [PATCH v6 4/6] ARM: rockchip: add sram dt nodes and documentation Heiko Stübner
2014-01-15 21:42 ` Heiko Stübner
2014-01-15 21:43 ` [PATCH v6 5/6] ARM: rockchip: add power-management-unit Heiko Stübner
2014-01-15 21:43 ` Heiko Stübner
2014-01-15 21:43 ` [PATCH v6 6/6] ARM: rockchip: add smp bringup code Heiko Stübner
2014-01-15 21:43 ` Heiko Stübner
2014-01-15 21:43 ` Heiko Stübner
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=1812408.EavpSnUyy3@phil \
--to=heiko@sntech.de \
--cc=linux-arm-kernel@lists.infradead.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.