Messages in this thread | | | Subject | Re: [Regression] "irqdomain: Don't set type when mapping an IRQ" breaks nexus7 gpio buttons | From | Marc Zyngier <> | Date | Thu, 11 Aug 2016 16:51:23 +0100 |
| |
On 11/08/16 16:32, John Stultz wrote: > On Thu, Aug 11, 2016 at 5:46 AM, Marc Zyngier <marc.zyngier@arm.com> wrote: > >> Nailed the sucker: >> >> diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c >> index b4c1bc7..9d7284a 100644 >> --- a/kernel/irq/chip.c >> +++ b/kernel/irq/chip.c >> @@ -820,6 +820,18 @@ __irq_do_set_handler(struct irq_desc *desc, irq_flow_handler_t handle, >> desc->name = name; >> >> if (handle != handle_bad_irq && is_chained) { >> + int ret; >> + >> + ret = __irq_set_trigger(desc, >> + irqd_get_trigger_type(&desc->irq_data)); >> + WARN_ON(ret); >> + /* >> + * This is beyond ugly: .set_type may have overridden >> + * the flow, not not knowing that we're dealing with a >> + * chained handler. Reset it here because we know >> + * better. >> + */ >> + desc->handle_irq = handle; >> irq_settings_set_noprobe(desc); >> irq_settings_set_norequest(desc); >> irq_settings_set_nothread(desc); >> >> Linus, Jon: Can you please confirm this fixes your respective issues? > > Yep. That works for me! > > Tested-by: John Stultz <john.stultz@linaro.org> > > Thanks so much for hunting this down!
Thanks for the report and the testing! I'll post the final patch shortly. tglx being away for a couple of weeks, it may take some time before this hits mainline though.
M. -- Jazz is not dead. It just smells funny...
| |