From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-gpio@vger.kernel.org,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
Sudeep Holla <sudeep.holla@arm.com>
Subject: Re: [PATCH] gpio: pl061: Pass irqchip when adding gpiochip
Date: Thu, 27 Jun 2019 16:02:21 +0530 [thread overview]
Message-ID: <20190627103221.GA15811@mani> (raw)
In-Reply-To: <20190625111824.28482-1-linus.walleij@linaro.org>
On Tue, Jun 25, 2019 at 01:18:24PM +0200, Linus Walleij wrote:
> We need to convert all old gpio irqchips to pass the irqchip
> setup along when adding the gpio_chip.
>
> For chained irqchips this is a pretty straight-forward
> conversion.
>
> Cc: Sudeep Holla <sudeep.holla@arm.com>
> Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Looks good to me!
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Thanks,
Mani
> ---
> drivers/gpio/gpio-pl061.c | 30 ++++++++++++++++--------------
> 1 file changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c
> index dc42571e6fdc..84af248f5172 100644
> --- a/drivers/gpio/gpio-pl061.c
> +++ b/drivers/gpio/gpio-pl061.c
> @@ -286,6 +286,7 @@ static int pl061_probe(struct amba_device *adev, const struct amba_id *id)
> {
> struct device *dev = &adev->dev;
> struct pl061 *pl061;
> + struct gpio_irq_chip *girq;
> int ret, irq;
>
> pl061 = devm_kzalloc(dev, sizeof(*pl061), GFP_KERNEL);
> @@ -313,10 +314,6 @@ static int pl061_probe(struct amba_device *adev, const struct amba_id *id)
> pl061->gc.parent = dev;
> pl061->gc.owner = THIS_MODULE;
>
> - ret = gpiochip_add_data(&pl061->gc, pl061);
> - if (ret)
> - return ret;
> -
> /*
> * irq_chip support
> */
> @@ -335,19 +332,24 @@ static int pl061_probe(struct amba_device *adev, const struct amba_id *id)
> }
> pl061->parent_irq = irq;
>
> - ret = gpiochip_irqchip_add(&pl061->gc, &pl061->irq_chip,
> - 0, handle_bad_irq,
> - IRQ_TYPE_NONE);
> - if (ret) {
> - dev_info(&adev->dev, "could not add irqchip\n");
> + girq = &pl061->gc.irq;
> + girq->chip = &pl061->irq_chip;
> + girq->parent_handler = pl061_irq_handler;
> + girq->num_parents = 1;
> + girq->parents = devm_kcalloc(dev, 1, sizeof(*girq->parents),
> + GFP_KERNEL);
> + if (!girq->parents)
> + return -ENOMEM;
> + girq->parents[0] = irq;
> + girq->default_type = IRQ_TYPE_NONE;
> + girq->handler = handle_bad_irq;
> +
> + ret = devm_gpiochip_add_data(dev, &pl061->gc, pl061);
> + if (ret)
> return ret;
> - }
> - gpiochip_set_chained_irqchip(&pl061->gc, &pl061->irq_chip,
> - irq, pl061_irq_handler);
>
> amba_set_drvdata(adev, pl061);
> - dev_info(&adev->dev, "PL061 GPIO chip @%pa registered\n",
> - &adev->res.start);
> + dev_info(dev, "PL061 GPIO chip %s registered\n", dev_name(dev));
>
> return 0;
> }
> --
> 2.20.1
>
prev parent reply other threads:[~2019-06-27 10:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-25 11:18 [PATCH] gpio: pl061: Pass irqchip when adding gpiochip Linus Walleij
2019-06-26 11:11 ` Sudeep Holla
2019-06-27 10:32 ` Manivannan Sadhasivam [this message]
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=20190627103221.GA15811@mani \
--to=manivannan.sadhasivam@linaro.org \
--cc=bgolaszewski@baylibre.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=sudeep.holla@arm.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.