On Fri, Sep 26, 2014 at 11:18 AM, Mika Westerberg <mika.westerb...@linux.intel.com> wrote: > On Fri, Sep 26, 2014 at 09:14:48AM +0000, Chang, Rebecca Swee Fun wrote:
>> > > + >> > > + /* disable interrupts */ >> > > + sch_gpio_irq_disable_all(sch, sch->chip.ngpio); >> > > + >> > > + err = request_irq(sch->irq_num, sch_gpio_irq_handler, >> > > + IRQF_SHARED, KBUILD_MODNAME, sch); >> > >> > This seems weird, typically irqchip drivers don't call request_irq() >> > directly but >> > instead irq_set_chained_handler() or similar. With >> > gpiochip_irqchip_* stuff you don't need even that. >> > >> Regarding this, gpio-sch is actually using shared interrupts and the >> IRQ resources are from ACPI SCI. As per my understanding, resources >> from ACPI SCI might be shared for power management purposes. In this >> case, irq_set_chained_handler() might not be able to use here. What do >> you think? > > I think you are right. And then you can't use gpiochip_irqchip_* helpers > either :-( No since that implies that the gpiochip lives in its own irqdomain, and this driver uses a linear range of irqs provided from another domain, just allocates descriptors for them. I'll take a look at this and see if it's merge material now. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/