sfi: Change SFI based device IRQ polarity to active high
authorWinson Yung <winson.w.yung@intel.com>
Tue, 10 Apr 2012 16:41:56 +0000 (09:41 -0700)
committerbuildbot <buildbot@intel.com>
Thu, 19 Apr 2012 01:28:45 +0000 (18:28 -0700)
BZ: 31180

Found during HSI/modem integration with ICS that setting
SFI based device IRQ polarity to active low causes lots
of spurious interrupts. Change it to active high to make
SFI base device IRQ work correctly.

Change-Id: I9a61751cbd1bac3745a94687bac2255fe6a68d5f
Signed-off-by: Winson Yung <winson.w.yung@intel.com>
Reviewed-on: http://android.intel.com:8080/42969
Reviewed-by: Yang, Fei <fei.yang@intel.com>
Reviewed-by: Monroy, German <german.monroy@intel.com>
Reviewed-by: Kuppuswamy, Sathyanarayanan <sathyanarayanan.kuppuswamy@intel.com>
Reviewed-by: Gross, Mark <mark.gross@intel.com>
Reviewed-by: Sahukar, Surya P <surya.p.sahukar@intel.com>
Tested-by: Ng, Cheon-woei <cheon-woei.ng@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
arch/x86/platform/intel-mid/intel-mid.c

index fafdbef..fe5b53e 100644 (file)
@@ -722,7 +722,11 @@ static int __init sfi_parse_devs(struct sfi_table_header *table)
                        irq_attr.ioapic = ioapic;
                        irq_attr.ioapic_pin = irq;
                        irq_attr.trigger = 1;
-                       irq_attr.polarity = 1;
+#ifdef CONFIG_X86_MRFLD
+                       irq_attr.polarity = 0; /* Active high */
+#else
+                       irq_attr.polarity = 1; /* Active low */
+#endif
                        io_apic_set_pci_routing(NULL, irq, &irq_attr);
                }