On Fri, May 22, 2009 at 11:54 PM, Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> wrote: > Kim Kyuwon <q1.kim@xxxxxxxxxxx> writes: > >> Kevin Hilman wrote: >>> This reverts commit 5461af5af5c6a7fee78978aafe720541bf3a2f55. >>> >>> Adding a disable hook to the irq_chip is not the way to fix the >>> problem being addressed by this patch. Instead, we need to fix >>> support for [enable|disable]_irq_wake(). >> >> Agree with you if we can use disable_irq_wake for MPU Interrupt with >> not masking the IRQ. Can you explain how we can fix support for >> disable_irq_wake() for omap_irq_chip? > > Yes. The PRCM has a wake-enable per device bit that can be set (see > PM_WKEN_<pwrdm>) to control device wakeup enables. PM_WKEN_<pwrdm> is not entirely matched to each MPU interrupt. If you want to use disable_irq_wake() with enabling PRCM_Interrupt, you should disable all PM_WKEN_<pwrdm> bits. And how can you make support of disable_irq_wake() for other MPU interrupts? > But the implemenation of that should not hold up this revert because > this patch breaks *all* wakeups since the PRCM interrupt itself is > disabled in the suspend path. Yes, I saw the same problem. This is caused by resume_device_irqs() recently added by Rafael not by my patch. I'm asking him that he made a right decision. > As a workaround for your USB problem that this patch was initially > intended to fix you could manually disable USB OTG wakeups like this: > > wken = prm_read_mod_reg(CORE_MOD, PM_WKEN); > wken &= ~OMAP3430_EN_HSOTGUSB; > prm_write_mod_reg(wken, CORE_MOD, PM_WKEN); Did you checked this masking prevent waking up from the interrupt of USB HOST? Regards, Kyuwon -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html