From: Rob Herring <robherring2@gmail.com>
To: Shawn Guo <shawn.guo@linaro.org>
Cc: Linus Walleij <linus.walleij@linaro.org>,
linux-kernel@vger.kernel.org,
Grant Likely <grant.likely@secretlab.ca>
Subject: Re: [PATCH 4/7] gpio/mxs: convert to use linear irqdomain
Date: Thu, 18 Oct 2012 09:56:13 -0500 [thread overview]
Message-ID: <5080188D.2010000@gmail.com> (raw)
In-Reply-To: <20121018062208.GB4513@S2101-09.ap.freescale.net>
On 10/18/2012 01:22 AM, Shawn Guo wrote:
> On Tue, Oct 16, 2012 at 09:22:56PM +0200, Linus Walleij wrote:
>> The MXS driver tries to do the work of irq_domain_add_linear()
>> by reserving a bunch of descriptors somewhere and keeping track
>> of the base offset, then calling irq_domain_add_legacy(). Let's
>> stop doing that and simply use the linear IRQ domain.
>>
>> Cc: Rob Herring <rob.herring@calxeda.com>
>> Cc: Grant Likely <grant.likely@secretlab.ca>
>> Cc: Shawn Guo <shawn.guo@linaro.org>
>> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
>> ---
>> drivers/gpio/gpio-mxs.c | 19 ++++++-------------
>> 1 file changed, 6 insertions(+), 13 deletions(-)
>>
>> diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c
>> index 796fb13..71fd5b1 100644
>> --- a/drivers/gpio/gpio-mxs.c
>> +++ b/drivers/gpio/gpio-mxs.c
>> @@ -223,7 +223,6 @@ static int __devinit mxs_gpio_probe(struct platform_device *pdev)
>> static void __iomem *base;
>> struct mxs_gpio_port *port;
>> struct resource *iores = NULL;
>> - int irq_base;
>
> ...
>
>> int err;
>>
>> port = devm_kzalloc(&pdev->dev, sizeof(*port), GFP_KERNEL);
>> @@ -272,16 +271,10 @@ static int __devinit mxs_gpio_probe(struct platform_device *pdev)
>> /* clear address has to be used to clear IRQSTAT bits */
>> writel(~0U, port->base + PINCTRL_IRQSTAT(port) + MXS_CLR);
>>
>> - irq_base = irq_alloc_descs(-1, 0, 32, numa_node_id());
>> - if (irq_base < 0)
>> - return irq_base;
>> -
>> - port->domain = irq_domain_add_legacy(np, 32, irq_base, 0,
>> + port->domain = irq_domain_add_linear(np, 32,
>> &irq_domain_simple_ops, NULL);
>> - if (!port->domain) {
>> - err = -ENODEV;
>> - goto out_irqdesc_free;
>> - }
>> + if (!port->domain)
>> + return -ENODEV;
>>
>> /* gpio-mxs can be a generic irq chip */
>> mxs_gpio_init_gc(port, irq_base);
> ^^^^^^^^
>
> So I know this one is not compile-tested.
>
> This is exactly the reason why I have to use irq_domain_add_legacy
> other than irq_domain_add_linear when I add irqdomain support for the
> driver. The driver uses generic-irq infrastructural which needs
> irq_base for setup. So sadly, before generic-irq gets improved, any
> irq chip that uses generic-irq will have to use irq_domain_add_legacy.
We should get someone to work on that. ;)
I think I need to go back and just fix this aspect rather than try and
integrate irqdomains into generic-irqchip.
Rob
next prev parent reply other threads:[~2012-10-18 14:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-16 19:22 [PATCH 4/7] gpio/mxs: convert to use linear irqdomain Linus Walleij
2012-10-18 6:22 ` Shawn Guo
2012-10-18 14:56 ` Rob Herring [this message]
2012-10-19 10:22 ` Linus Walleij
2012-10-19 15:30 ` Shawn Guo
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=5080188D.2010000@gmail.com \
--to=robherring2@gmail.com \
--cc=grant.likely@secretlab.ca \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=shawn.guo@linaro.org \
/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.