From: Rob Herring <robh@kernel.org>
To: Michael Walle <michael@walle.cc>
Cc: linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org,
Miquel Raynal <miquel.raynal@bootlin.com>,
Richard Weinberger <richard@nod.at>,
Vignesh Raghavendra <vigneshr@ti.com>,
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
Shawn Guo <shawnguo@kernel.org>, Li Yang <leoyang.li@nxp.com>,
Frank Rowand <frowand.list@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Ansuel Smith <ansuelsmth@gmail.com>, Andrew Lunn <andrew@lunn.ch>
Subject: Re: [PATCH 1/8] of: base: add of_parse_phandle_with_optional_args()
Date: Mon, 10 Jan 2022 13:06:39 -0600 [thread overview]
Message-ID: <YdyDv1/WbNi3CMbu@robh.at.kernel.org> (raw)
In-Reply-To: <20211228142549.1275412-2-michael@walle.cc>
On Tue, Dec 28, 2021 at 03:25:42PM +0100, Michael Walle wrote:
> Add a new variant of the of_parse_phandle_with_args() which treats the
> cells name as optional. If it's missing, it is assumed that the phandle
> has no arguments.
>
> Up until now, a nvmem node didn't have any arguments, so all the device
> trees haven't any '#*-cells' property. But there is a need for an
> additional argument for the phandle, for which we need a '#*-cells'
> property. Therefore, we need to support nvmem nodes with and without
> this property.
>
> Signed-off-by: Michael Walle <michael@walle.cc>
> ---
> drivers/of/base.c | 23 +++++++++++++++++++++++
> include/linux/of.h | 12 ++++++++++++
> 2 files changed, 35 insertions(+)
>
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 5b907600f5b0..fb28bb26276e 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -1543,6 +1543,29 @@ int of_parse_phandle_with_args(const struct device_node *np, const char *list_na
> }
> EXPORT_SYMBOL(of_parse_phandle_with_args);
>
> +/**
> + * of_parse_phandle_with_optional_args() - Find a node pointed by phandle in a list
> + *
> + * Same as of_parse_phandle_args() except that if the cells_name property is
> + * not found, cell_count of 0 is assumed.
> + *
> + * This is used to useful, if you have a phandle which didn't have arguments
> + * before and thus doesn't have a '#*-cells' property but is now migrated to
> + * having arguments while retaining backwards compatibility.
> + */
> +int of_parse_phandle_with_optional_args(const struct device_node *np,
> + const char *list_name,
> + const char *cells_name, int index,
> + struct of_phandle_args *out_args)
> +{
> + if (index < 0)
> + return -EINVAL;
I'm not sure why we didn't do this from the start, but just make index
unsigned and then this check is not needed.
> +
> + return __of_parse_phandle_with_args(np, list_name, cells_name,
> + 0, index, out_args);
> +}
> +EXPORT_SYMBOL(of_parse_phandle_with_optional_args);
With the above, just make this static inline. Bonus points if you want
to do the same changes on the other variants.
Rob
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Michael Walle <michael@walle.cc>
Cc: linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org,
Miquel Raynal <miquel.raynal@bootlin.com>,
Richard Weinberger <richard@nod.at>,
Vignesh Raghavendra <vigneshr@ti.com>,
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
Shawn Guo <shawnguo@kernel.org>, Li Yang <leoyang.li@nxp.com>,
Frank Rowand <frowand.list@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Ansuel Smith <ansuelsmth@gmail.com>, Andrew Lunn <andrew@lunn.ch>
Subject: Re: [PATCH 1/8] of: base: add of_parse_phandle_with_optional_args()
Date: Mon, 10 Jan 2022 13:06:39 -0600 [thread overview]
Message-ID: <YdyDv1/WbNi3CMbu@robh.at.kernel.org> (raw)
In-Reply-To: <20211228142549.1275412-2-michael@walle.cc>
On Tue, Dec 28, 2021 at 03:25:42PM +0100, Michael Walle wrote:
> Add a new variant of the of_parse_phandle_with_args() which treats the
> cells name as optional. If it's missing, it is assumed that the phandle
> has no arguments.
>
> Up until now, a nvmem node didn't have any arguments, so all the device
> trees haven't any '#*-cells' property. But there is a need for an
> additional argument for the phandle, for which we need a '#*-cells'
> property. Therefore, we need to support nvmem nodes with and without
> this property.
>
> Signed-off-by: Michael Walle <michael@walle.cc>
> ---
> drivers/of/base.c | 23 +++++++++++++++++++++++
> include/linux/of.h | 12 ++++++++++++
> 2 files changed, 35 insertions(+)
>
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 5b907600f5b0..fb28bb26276e 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -1543,6 +1543,29 @@ int of_parse_phandle_with_args(const struct device_node *np, const char *list_na
> }
> EXPORT_SYMBOL(of_parse_phandle_with_args);
>
> +/**
> + * of_parse_phandle_with_optional_args() - Find a node pointed by phandle in a list
> + *
> + * Same as of_parse_phandle_args() except that if the cells_name property is
> + * not found, cell_count of 0 is assumed.
> + *
> + * This is used to useful, if you have a phandle which didn't have arguments
> + * before and thus doesn't have a '#*-cells' property but is now migrated to
> + * having arguments while retaining backwards compatibility.
> + */
> +int of_parse_phandle_with_optional_args(const struct device_node *np,
> + const char *list_name,
> + const char *cells_name, int index,
> + struct of_phandle_args *out_args)
> +{
> + if (index < 0)
> + return -EINVAL;
I'm not sure why we didn't do this from the start, but just make index
unsigned and then this check is not needed.
> +
> + return __of_parse_phandle_with_args(np, list_name, cells_name,
> + 0, index, out_args);
> +}
> +EXPORT_SYMBOL(of_parse_phandle_with_optional_args);
With the above, just make this static inline. Bonus points if you want
to do the same changes on the other variants.
Rob
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Michael Walle <michael@walle.cc>
Cc: linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org,
Miquel Raynal <miquel.raynal@bootlin.com>,
Richard Weinberger <richard@nod.at>,
Vignesh Raghavendra <vigneshr@ti.com>,
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
Shawn Guo <shawnguo@kernel.org>, Li Yang <leoyang.li@nxp.com>,
Frank Rowand <frowand.list@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Ansuel Smith <ansuelsmth@gmail.com>, Andrew Lunn <andrew@lunn.ch>
Subject: Re: [PATCH 1/8] of: base: add of_parse_phandle_with_optional_args()
Date: Mon, 10 Jan 2022 13:06:39 -0600 [thread overview]
Message-ID: <YdyDv1/WbNi3CMbu@robh.at.kernel.org> (raw)
In-Reply-To: <20211228142549.1275412-2-michael@walle.cc>
On Tue, Dec 28, 2021 at 03:25:42PM +0100, Michael Walle wrote:
> Add a new variant of the of_parse_phandle_with_args() which treats the
> cells name as optional. If it's missing, it is assumed that the phandle
> has no arguments.
>
> Up until now, a nvmem node didn't have any arguments, so all the device
> trees haven't any '#*-cells' property. But there is a need for an
> additional argument for the phandle, for which we need a '#*-cells'
> property. Therefore, we need to support nvmem nodes with and without
> this property.
>
> Signed-off-by: Michael Walle <michael@walle.cc>
> ---
> drivers/of/base.c | 23 +++++++++++++++++++++++
> include/linux/of.h | 12 ++++++++++++
> 2 files changed, 35 insertions(+)
>
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 5b907600f5b0..fb28bb26276e 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -1543,6 +1543,29 @@ int of_parse_phandle_with_args(const struct device_node *np, const char *list_na
> }
> EXPORT_SYMBOL(of_parse_phandle_with_args);
>
> +/**
> + * of_parse_phandle_with_optional_args() - Find a node pointed by phandle in a list
> + *
> + * Same as of_parse_phandle_args() except that if the cells_name property is
> + * not found, cell_count of 0 is assumed.
> + *
> + * This is used to useful, if you have a phandle which didn't have arguments
> + * before and thus doesn't have a '#*-cells' property but is now migrated to
> + * having arguments while retaining backwards compatibility.
> + */
> +int of_parse_phandle_with_optional_args(const struct device_node *np,
> + const char *list_name,
> + const char *cells_name, int index,
> + struct of_phandle_args *out_args)
> +{
> + if (index < 0)
> + return -EINVAL;
I'm not sure why we didn't do this from the start, but just make index
unsigned and then this check is not needed.
> +
> + return __of_parse_phandle_with_args(np, list_name, cells_name,
> + 0, index, out_args);
> +}
> +EXPORT_SYMBOL(of_parse_phandle_with_optional_args);
With the above, just make this static inline. Bonus points if you want
to do the same changes on the other variants.
Rob
next prev parent reply other threads:[~2022-01-10 19:07 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-28 14:25 [PATCH 0/8] nvmem: add ethernet address offset support Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` [PATCH 1/8] of: base: add of_parse_phandle_with_optional_args() Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` Michael Walle
2022-01-10 19:06 ` Rob Herring [this message]
2022-01-10 19:06 ` Rob Herring
2022-01-10 19:06 ` Rob Herring
2021-12-28 14:25 ` [PATCH 2/8] dt-bindings: nvmem: add transformation bindings Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-29 17:34 ` Rob Herring
2021-12-29 17:34 ` Rob Herring
2021-12-29 17:34 ` Rob Herring
2022-01-04 15:03 ` Rob Herring
2022-01-04 15:03 ` Rob Herring
2022-01-04 15:03 ` Rob Herring
2022-01-05 8:25 ` Michael Walle
2022-01-05 8:25 ` Michael Walle
2022-01-05 8:25 ` Michael Walle
2022-01-05 14:20 ` Rob Herring
2022-01-05 14:20 ` Rob Herring
2022-01-05 14:20 ` Rob Herring
2021-12-28 14:25 ` [PATCH 3/8] nvmem: core: add an index parameter to the cell Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` [PATCH 4/8] nvmem: core: add transformations support Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` [PATCH 5/8] net: add helper eth_addr_add() Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` Michael Walle
2022-01-25 10:24 ` Rafał Miłecki
2022-01-25 10:24 ` Rafał Miłecki
2022-01-25 10:24 ` Rafał Miłecki
2022-08-25 9:46 ` Michael Walle
2022-08-25 9:46 ` Michael Walle
2022-08-25 9:46 ` Michael Walle
2021-12-28 14:25 ` [PATCH 6/8] nvmem: transformations: ethernet address offset support Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` Michael Walle
2022-01-25 12:08 ` Rafał Miłecki
2022-01-25 12:08 ` Rafał Miłecki
2022-01-25 12:08 ` Rafał Miłecki
2022-01-25 14:59 ` Michael Walle
2022-01-25 14:59 ` Michael Walle
2022-01-25 14:59 ` Michael Walle
2021-12-28 14:25 ` [PATCH 7/8] arm64: dts: ls1028a: sl28: get MAC addresses from VPD Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` [PATCH 8/8] arm64: defconfig: enable NVMEM transformations Michael Walle
2021-12-28 14:25 ` Michael Walle
2021-12-28 14:25 ` Michael Walle
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=YdyDv1/WbNi3CMbu@robh.at.kernel.org \
--to=robh@kernel.org \
--cc=andrew@lunn.ch \
--cc=ansuelsmth@gmail.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=kuba@kernel.org \
--cc=leoyang.li@nxp.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=michael@walle.cc \
--cc=miquel.raynal@bootlin.com \
--cc=netdev@vger.kernel.org \
--cc=richard@nod.at \
--cc=shawnguo@kernel.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=vigneshr@ti.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.