From: Rob Herring <robh@kernel.org>
To: Yang Yingliang <yangyingliang@huawei.com>
Cc: devicetree@vger.kernel.org, frowand.list@gmail.com
Subject: Re: [PATCH -next 1/2] of/address: introduce of_address_count() helper
Date: Fri, 30 Sep 2022 16:56:04 -0500 [thread overview]
Message-ID: <20220930215604.GA1090758-robh@kernel.org> (raw)
In-Reply-To: <20220930090845.503815-2-yangyingliang@huawei.com>
On Fri, Sep 30, 2022 at 05:08:44PM +0800, Yang Yingliang wrote:
> Introduce of_address_count() helper to count the IO resources
> instead of open-coding it.
>
> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> ---
> drivers/of/address.c | 11 +++++++++++
> include/linux/of_address.h | 7 +++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/drivers/of/address.c b/drivers/of/address.c
> index 96f0a12e507c..e32846a9a8d5 100644
> --- a/drivers/of/address.c
> +++ b/drivers/of/address.c
> @@ -848,6 +848,17 @@ int of_address_to_resource(struct device_node *dev, int index,
> }
> EXPORT_SYMBOL_GPL(of_address_to_resource);
>
> +int of_address_count(struct device_node *np)
> +{
> + struct resource res;
> + int count = 0;
> +
> + while (of_address_to_resource(np, count, &res) == 0)
> + count++;
> +
> + return count;
> +}
EXPORT?
However, I'd just make this always inline instead.
> +
> /**
> * of_iomap - Maps the memory mapped IO for a given device_node
> * @np: the device whose io range will be mapped
> diff --git a/include/linux/of_address.h b/include/linux/of_address.h
> index 45598dbec269..63027e8f3397 100644
> --- a/include/linux/of_address.h
> +++ b/include/linux/of_address.h
> @@ -43,6 +43,7 @@ extern u64 of_translate_dma_address(struct device_node *dev,
> extern u64 of_translate_address(struct device_node *np, const __be32 *addr);
> extern int of_address_to_resource(struct device_node *dev, int index,
> struct resource *r);
> +extern int of_address_count(struct device_node *np);
> extern void __iomem *of_iomap(struct device_node *device, int index);
> void __iomem *of_io_request_and_map(struct device_node *device,
> int index, const char *name);
> @@ -127,6 +128,7 @@ static inline bool of_dma_is_coherent(struct device_node *np)
> #ifdef CONFIG_OF
> extern int of_address_to_resource(struct device_node *dev, int index,
> struct resource *r);
> +extern int of_address_count(struct device_node *np);
I'm pretty sure Sparc build is going to break. Sparc has its own
implementation of of_address_to_resource().
> void __iomem *of_iomap(struct device_node *node, int index);
> #else
> static inline int of_address_to_resource(struct device_node *dev, int index,
> @@ -139,6 +141,11 @@ static inline void __iomem *of_iomap(struct device_node *device, int index)
> {
> return NULL;
> }
> +
> +static inline int of_address_count(struct device_node *np)
> +{
> + return 0;
> +}
> #endif
> #define of_range_parser_init of_pci_range_parser_init
>
> --
> 2.25.1
>
>
next prev parent reply other threads:[~2022-09-30 21:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-30 9:08 [PATCH -next 0/2] of: introduce of_address_count() helper Yang Yingliang
2022-09-30 9:08 ` [PATCH -next 1/2] of/address: " Yang Yingliang
2022-09-30 21:56 ` Rob Herring [this message]
2022-10-08 7:05 ` Yang Yingliang
2022-09-30 9:08 ` [PATCH -next 2/2] of/platform: use " Yang Yingliang
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=20220930215604.GA1090758-robh@kernel.org \
--to=robh@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=yangyingliang@huawei.com \
/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.