From: hdegoede@redhat.com (Hans de Goede)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 3/5] pinctrl: sunxi: Move setting of mux to irq type from unmask to request_resources
Date: Tue, 03 Jun 2014 17:42:43 +0200 [thread overview]
Message-ID: <538DECF3.2050405@redhat.com> (raw)
In-Reply-To: <20140602115944.GE27722@lukather>
Hi,
On 06/02/2014 01:59 PM, Maxime Ripard wrote:
> On Sat, May 31, 2014 at 04:01:37PM +0200, Hans de Goede wrote:
>> With level triggered interrupt mask / unmask will get called for each
>> interrupt, doing the somewhat expensive mux setting on each unmask thus is
>> not a good idea. Instead add a request_resources callback and do it there.
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>> drivers/pinctrl/sunxi/pinctrl-sunxi.c | 22 ++++++++++++++--------
>> 1 file changed, 14 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
>> index c199337..61d3246 100644
>> --- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
>> +++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
>> @@ -531,6 +531,19 @@ static int sunxi_pinctrl_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
>> return irq_find_mapping(pctl->domain, desc->irqnum);
>> }
>>
>> +static int sunxi_pinctrl_irq_request_resources(struct irq_data *d)
>> +{
>> + struct sunxi_pinctrl *pctl = irq_data_get_irq_chip_data(d);
>> + struct sunxi_desc_function *func;
>> +
>> + func = sunxi_pinctrl_desc_find_function_by_pin(pctl,
>> + pctl->irq_array[d->hwirq], "irq");
>
> I know you're just moving code here, but we should add a check for
> func being !NULL here, otherwise, the kernel is going to blow up at
> the next line.
>
> And since gpio_to_irq might not be called before the request_irq, you
> might be in such a case.
Ok, will do for v3 of the patch-set.
Regards,
Hans
next prev parent reply other threads:[~2014-06-03 15:42 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-31 14:01 [PATCH v2 0/5] pinctrl: sunxi: Fix level triggered interrupt support Hans de Goede
2014-05-31 14:01 ` [PATCH v2 1/5] pinctrl: sunxi: Fix sunxi_irq_cfg_reg not working for irqs >= 8 Hans de Goede
2014-06-02 10:18 ` Maxime Ripard
2014-06-09 13:21 ` Linus Walleij
2014-06-09 13:45 ` Hans de Goede
2014-05-31 14:01 ` [PATCH v2 2/5] pinctrl: sunxi: Add IRQCHIP_SKIP_SET_WAKE flag for pinctrl irq chip Hans de Goede
2014-06-02 10:34 ` Maxime Ripard
2014-05-31 14:01 ` [PATCH v2 3/5] pinctrl: sunxi: Move setting of mux to irq type from unmask to request_resources Hans de Goede
2014-06-02 11:59 ` Maxime Ripard
2014-06-03 15:42 ` Hans de Goede [this message]
2014-05-31 14:01 ` [PATCH v2 4/5] pinctrl: sunxi: Properly handle level triggered gpio interrupts Hans de Goede
2014-06-03 13:30 ` Maxime Ripard
2014-06-03 15:13 ` Hans de Goede
2014-06-17 18:43 ` Maxime Ripard
2014-06-23 14:53 ` Hans de Goede
2014-05-31 14:01 ` [PATCH v2 5/5] pinctrl: sunxi: Define enable / disable irq callbacks for level triggered irqs Hans de Goede
2014-06-03 13:47 ` Maxime Ripard
2014-06-03 15:34 ` Hans de Goede
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=538DECF3.2050405@redhat.com \
--to=hdegoede@redhat.com \
--cc=linux-arm-kernel@lists.infradead.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.