x86: mrst: Set vRTC's IRQ to level trigger type

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>

authored by

Feng Tang and committed by
Thomas Gleixner
6f207e9b 86071535

+1 -1
+1 -1
arch/x86/platform/mrst/mrst.c
··· 195 195 totallen, (u32)pentry->phys_addr, pentry->irq); 196 196 mp_irq.type = MP_IOAPIC; 197 197 mp_irq.irqtype = mp_INT; 198 - mp_irq.irqflag = 0; 198 + mp_irq.irqflag = 0xf; /* level trigger and active low */ 199 199 mp_irq.srcbus = 0; 200 200 mp_irq.srcbusirq = pentry->irq; /* IRQ */ 201 201 mp_irq.dstapic = MP_APIC_ALL;