]> git.karo-electronics.de Git - linux-beck.git/commitdiff
x86: mrst: Set vRTC's IRQ to level trigger type
authorFeng Tang <feng.tang@intel.com>
Thu, 11 Nov 2010 15:50:50 +0000 (15:50 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 11 Nov 2010 16:43:18 +0000 (17:43 +0100)
When setting up the mpc_intsrc structure for vRTC's IRQ,
we need to set its irqflag to level trigger, otherwise
it will be taken as edge triggered and the vRTC IRQ will
fire only once, as there is never a EOI issued from the
IA core for it.

The original code worked in previous kernel. This is  because it
was configured to level trigger type by luck. It fell
into the default PCI trigger category which is level triggered.

Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
LKML-Reference: <20101111155019.12924.569.stgit@localhost.localdomain>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/platform/mrst/mrst.c

index 237e28f0c1224a0cc3b50478eae3930e1fb256a6..fee0b4914e07ad494f82629ccc10dc0a1980879c 100644 (file)
@@ -195,7 +195,7 @@ int __init sfi_parse_mrtc(struct sfi_table_header *table)
                        totallen, (u32)pentry->phys_addr, pentry->irq);
                mp_irq.type = MP_IOAPIC;
                mp_irq.irqtype = mp_INT;
-               mp_irq.irqflag = 0;
+               mp_irq.irqflag = 0xf;   /* level trigger and active low */
                mp_irq.srcbus = 0;
                mp_irq.srcbusirq = pentry->irq; /* IRQ */
                mp_irq.dstapic = MP_APIC_ALL;