Questions about masking interrupts when disabling interrupts

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

 



Greetings,

I'm enabling the Suspend-to-RAM state in our new OMAP3 Board.
But I had some problems because of USB Interrupt.

Although I disabled USB interrupt by disable_irq() function while
entering the Suspend,
M_IRQ_92 irq continuously wake up the OMAP3430 Processor.

So, I fixed this problem as following patch.

My Questions are:
1. Could anyone suggest the better solution for this problem?
2. If there is no better solution, can I be applied this patch to omap-tree?

Thank you!

commit bbb49321b161e6a9ff2b73326d4012d8eb8bbf23
Author: Kim Kyuwon <chammoru@xxxxxxxxx>
Date:   Tue Jan 6 10:11:46 2009 +0900

    ARM: OMAP3: Mask interrupts when disabling interrupts

    By Ingo Molnar, interrupts are not masked by default.
    (refer to 76d2160147f43f982dfe881404cfde9fd0a9da21)

    But if interrupts are not masked, the processor can wake up while in
    Suspend-to-RAM state by an external interrupt. For example, if an
OMAP3 board
    is connected to Host PC by USB and entered to Suspend-to-RAM
state, it wake up
    automatically by M_IRQ_92. The disable_irq() function can't disable the
    interrupt in H/W level, So I modified arch/arm/mach-omap2/irq.c

    Signed-off-by: Kim Kyuwon <chammoru@xxxxxxxxx>

diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index 110acb9..b44dcae 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -123,6 +123,11 @@ static void omap_unmask_irq(unsigned int irq)
 	intc_bank_write_reg(1 << irq, &irq_banks[0], INTC_MIR_CLEAR0 + offset);
 }

+static void omap_disable_irq(unsigned int irq)
+{
+	omap_mask_irq(irq);
+}
+
 static void omap_mask_ack_irq(unsigned int irq)
 {
 	omap_mask_irq(irq);
@@ -134,6 +139,7 @@ static struct irq_chip omap_irq_chip = {
 	.ack	= omap_mask_ack_irq,
 	.mask	= omap_mask_irq,
 	.unmask	= omap_unmask_irq,
+	.disable = omap_disable_irq,
 };

 static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank)
-- 
Kim 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