aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/platform/mrst
diff options
context:
space:
mode:
authorFeng Tang <feng.tang@intel.com>2010-11-11 10:50:50 -0500
committerThomas Gleixner <tglx@linutronix.de>2010-11-11 11:43:18 -0500
commit6f207e9bb4219d261d9326597ca533f954f31755 (patch)
tree6cd1f1c0163f05b3073794bf290a4e19582f053e /arch/x86/platform/mrst
parent86071535f845fd054753122e564cee9406c84e70 (diff)
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>
Diffstat (limited to 'arch/x86/platform/mrst')
-rw-r--r--arch/x86/platform/mrst/mrst.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c
index 237e28f0c12..fee0b4914e0 100644
--- a/arch/x86/platform/mrst/mrst.c
+++ b/arch/x86/platform/mrst/mrst.c
@@ -195,7 +195,7 @@ int __init sfi_parse_mrtc(struct sfi_table_header *table)
195 totallen, (u32)pentry->phys_addr, pentry->irq); 195 totallen, (u32)pentry->phys_addr, pentry->irq);
196 mp_irq.type = MP_IOAPIC; 196 mp_irq.type = MP_IOAPIC;
197 mp_irq.irqtype = mp_INT; 197 mp_irq.irqtype = mp_INT;
198 mp_irq.irqflag = 0; 198 mp_irq.irqflag = 0xf; /* level trigger and active low */
199 mp_irq.srcbus = 0; 199 mp_irq.srcbus = 0;
200 mp_irq.srcbusirq = pentry->irq; /* IRQ */ 200 mp_irq.srcbusirq = pentry->irq; /* IRQ */
201 mp_irq.dstapic = MP_APIC_ALL; 201 mp_irq.dstapic = MP_APIC_ALL;