On Monday, July 28, 2014 08:49:13 AM Peter Zijlstra wrote: > On Sat, Jul 26, 2014 at 01:49:17PM +0200, Rafael J. Wysocki wrote: > > One more idea, on top of the prototype patch that I posted > > (https://patchwork.kernel.org/patch/4625921/). > > > > The problem with enable_irq_wake() is that it only takes one argument, so > > if that's a shared interrupt, we can't really say which irqaction is > > supposed > > to handle wakeup interrupts should they occur. > > Right. > > > To address this we can introduce enable_device_irq_wake() that will take > > an additional dev_id argument (that must be the one passed to request_irq() > > or > > the operation will fail) that can be used to identify the irqaction for > > handling the wakeup interrupts. It can work by setting IRQF_NO_SUSPEND > > for the irqaction in question and doing the rest along the lines of > > irq_set_irq_wake(irq, 1). disable_device_irq_wake() will then clear > > IRQF_NO_SUSPEND (it also has to be passed the dev_id argument). > > > > If we have that, the guys who need to set up device interrupts (ie. > > interrupts > > normally used for signaling input events etc) for system wakeup will need to > > use enable_device_irq_wake() and that should just work. > > So in the patch I posted I described why NO_SUSPEND is useful, I still > have to hear a solid reason for why we also need enable_irq_wake()? What > does it do that cannot be achieved with NO_SUSPEND? > > I realize its dynamic, but that's crap, at device registration time it > pretty much already knows if its a wakeup source or not, right?
It knows that it can be a wakeup source, but it doesn't know if it will be use that way (user space may not want that, for example). It still makes sense to use IRQF_NO_SUSPEND for it, but people were complaining about having to do that in addition to using enable_irq_wake(). Quite understandably, because usually you want both or at least "wakeup" should imply "no suspend". Rafael -- 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/