path: root/arch
diff options
authorFeng Tang <feng.tang@intel.com>2010-12-09 10:37:45 +0000
committerAlan Cox <alan@linux.intel.com>2010-12-09 10:37:45 +0000
commit5d06b97ab272feb860f0bff35d4e0d7ad266bdee (patch)
treef3a61ad5dd01355f2b80eb688445714b90ef58b7 /arch
parent96ed38607f2c400539b9fe5cda881737ba668b52 (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 taken as edge triggered and cause the issue that vRTC can only fire IRQ once, as there is never a EOI issued from IA core for it. The original code worked in previous kernel is because it was configured to level trigger type by luck, as it falled into default PCI's trigger categary which is level trigger. Signed-off-by: Feng Tang <feng.tang@intel.com> Signed-off-by: Alan Cox <alan@linux.intel.com>
Diffstat (limited to 'arch')
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c
index 7282f637071..febfeb273b7 100644
--- a/arch/x86/platform/mrst/mrst.c
+++ b/arch/x86/platform/mrst/mrst.c
@@ -200,7 +200,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;