Re: [PATCH v1 1/1] pinctrl: st: Avoid using of_node member of struct gpio_chip

From: Dmitry Torokhov
Date: Mon Oct 10 2022 - 02:14:01 EST


Hi Andy,

On Tue, Oct 04, 2022 at 03:54:49PM +0300, Andy Shevchenko wrote:
> The of_node member of the struct gpio_chip is obsoleted and
> shouldn't be used. It will be removed in the future.
>
> Replace its use in st_pctl_dt_calculate_pin() by comparing
> the fwnode pointers.
>
> Fixes: e75729b2f63f ("pinctrl: st: stop abusing of_get_named_gpio()")
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> ---
> drivers/pinctrl/pinctrl-st.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
> index cf7f9cbe6044..ac24d07338a4 100644
> --- a/drivers/pinctrl/pinctrl-st.c
> +++ b/drivers/pinctrl/pinctrl-st.c
> @@ -1175,7 +1175,7 @@ static int st_pctl_dt_calculate_pin(struct st_pinctrl *info,
>
> for (i = 0; i < info->nbanks; i++) {
> chip = &info->banks[i].gpio_chip;
> - if (chip->of_node == np) {
> + if (chip->fwnode == of_fwnode_handle(np)) {

Are you sure chip's fwnode is properly set here (without your other
patch)? I don't believe the driver sets it up, and I don't think gpiolib
maps it from the gpio_chip->of_node.

Actually, there is another reference to of_node in gpio chip in
st_gpiolib_register_bank()...

Thanks.

--
Dmitry