Messages in this thread | | | From | Linus Walleij <> | Date | Tue, 13 Sep 2016 11:18:49 +0200 | Subject | Re: [PATCH] pinctrl: cherryview: Do not mask all interrupts on probe |
| |
On Mon, Sep 12, 2016 at 3:11 PM, Mika Westerberg <mika.westerberg@linux.intel.com> wrote: > On Mon, Sep 12, 2016 at 09:04:44PM +0800, Phidias Chiang wrote: >> On Mon, Sep 12, 2016 at 12:04:01PM +0300, Mika Westerberg wrote: >> > >> > OK, I see what is going on now. When I changed handle_simple_irq to >> > handle_bad_irq, the IRQ core in __irq_do_set_handler() thinks the >> > handler is uninstalled and masks the line. >> > >> > If you change handle_bad_irq to handle_simple_irq, in call to >> > gpiochip_irqchip_add(), does it work then? >> >> Yes it does :), thank you for the support! > > Thanks for testing. > > So we need to use handle_simple_irq here instead. > > Linus, do you see any problems with that?
I need to see the patch in its context with a commit message, I can't figure it out from the thread.
handle_simple_irq() is for something generic not level- or edge-triggered. If you support specific triggers only, it should not be used.
Nominally assigning handle_bad_irq() until a specific edge or level is requested is the right thing to do, since the IRQ is really not configured for anything at all and hence has undefined behaviour.
But write a patch and involve the irqchip people I guess?
Yours, Linus Walleij
| |