[PATCH v2] gpio: visconti: Fix fwnode of GPIO IRQ

Bartosz Golaszewski brgl at bgdev.pl
Thu May 5 05:39:37 PDT 2022


On Thu, Apr 21, 2022 at 11:42 AM Nobuhiro Iwamatsu
<nobuhiro1.iwamatsu at toshiba.co.jp> wrote:
>
> The fwnode of GPIO IRQ must be set to its own fwnode, not the fwnode of the
> parent IRQ. Therefore, this sets own fwnode instead of the parent IRQ fwnode to
> GPIO IRQ's.
>
> Fixes: 2ad74f40dacc ("gpio: visconti: Add Toshiba Visconti GPIO support")
> Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu at toshiba.co.jp>
> ---
>
>  v2: Add Fixes tag.
>
>  drivers/gpio/gpio-visconti.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpio/gpio-visconti.c b/drivers/gpio/gpio-visconti.c
> index 47455810bdb9..e6534ea1eaa7 100644
> --- a/drivers/gpio/gpio-visconti.c
> +++ b/drivers/gpio/gpio-visconti.c
> @@ -130,7 +130,6 @@ static int visconti_gpio_probe(struct platform_device *pdev)
>         struct gpio_irq_chip *girq;
>         struct irq_domain *parent;
>         struct device_node *irq_parent;
> -       struct fwnode_handle *fwnode;
>         int ret;
>
>         priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
> @@ -150,14 +149,12 @@ static int visconti_gpio_probe(struct platform_device *pdev)
>         }
>
>         parent = irq_find_host(irq_parent);
> +       of_node_put(irq_parent);
>         if (!parent) {
>                 dev_err(dev, "No IRQ parent domain\n");
>                 return -ENODEV;
>         }
>
> -       fwnode = of_node_to_fwnode(irq_parent);
> -       of_node_put(irq_parent);
> -
>         ret = bgpio_init(&priv->gpio_chip, dev, 4,
>                          priv->base + GPIO_IDATA,
>                          priv->base + GPIO_OSET,
> @@ -180,7 +177,7 @@ static int visconti_gpio_probe(struct platform_device *pdev)
>
>         girq = &priv->gpio_chip.irq;
>         girq->chip = irq_chip;
> -       girq->fwnode = fwnode;
> +       girq->fwnode = of_node_to_fwnode(dev->of_node);
>         girq->parent_domain = parent;
>         girq->child_to_parent_hwirq = visconti_gpio_child_to_parent_hwirq;
>         girq->populate_parent_alloc_arg = visconti_gpio_populate_parent_fwspec;
> --
> 2.34.1
>
>

Queued for fixes, thanks!

Bart



More information about the linux-arm-kernel mailing list