Re: [PATCH 01/13] Revert "ARM: OMAP: Mask interrupts when disabling interrupts, v2"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux