Skip to contentSkip to conversation

VIA IRQ quirk fixup only in XT_PIC mode take 1 was [PATCH] Add SATA device to VIA IRQ quirk fixup list

PATCH In review Sergio Monteiro Basto 1 participant 2 messages Jul 28, 2006 PCI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 VIA IRQ quirk fixup only in XT_PIC mode take 1 was [PATCH] Add SATA device to VIA IRQ quirk fixup list

Hi ,
Ok here is my first try against 2.6.17, I like the solution , but I have time to test it, because I have to build the kernel again, I test if compiles.
Just though that I should send this patch soon as possible. Any feed-back is welcome !
Thanks,

Cc Alan Cox <[email protected]>
Cc "Scott J. Harmon" <[email protected]>
Cc Andrew Morton <[email protected]>
Cc Chris Wedgwood <[email protected]>
Cc Greg KH <[email protected]>

---

 quirks.c |   20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
drivers/pci/quirks.c +12 -16
@@ -642,22 +653,18 @@ static void quirk_via_irq(struct pci_dev
 {
 	u8 irq, new_irq;
 
-	new_irq = dev->irq & 0xf;
-	pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
-	if (new_irq != irq) {
-		printk(KERN_INFO "PCI: VIA IRQ fixup for %s, from %d to %d\n",
-			pci_name(dev), irq, new_irq);
-		udelay(15);	/* unknown if delay really needed */
-		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
-	}
-}
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_2, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, quirk_via_irq);
+	if (!smp_found_config && !cpu_has_apic) {
+		new_irq = dev->irq & 0xf;
+		pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
+		if (new_irq != irq) {
+			printk(KERN_INFO "PCI: VIA IRQ fixup for %s, from %d to %d\n",
+				pci_name(dev), irq, new_irq);
+			udelay(15);	/* unknown if delay really needed */
+			pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
+		}
+	}
+}
+DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_via_irq);
 
 /*
  * VIA VT82C598 has its device ID settable and many BIOSes
drivers/pci/quirks.c +12 -16
@@ -642,22 +653,18 @@ static void quirk_via_irq(struct pci_dev
 {
 	u8 irq, new_irq;
 
-	new_irq = dev->irq & 0xf;
-	pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
-	if (new_irq != irq) {
-		printk(KERN_INFO "PCI: VIA IRQ fixup for %s, from %d to %d\n",
-			pci_name(dev), irq, new_irq);
-		udelay(15);	/* unknown if delay really needed */
-		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
-	}
-}
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_2, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, quirk_via_irq);
+	if (!smp_found_config && !cpu_has_apic) {
+		new_irq = dev->irq & 0xf;
+		pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
+		if (new_irq != irq) {
+			printk(KERN_INFO "PCI: VIA IRQ fixup for %s, from %d to %d\n",
+				pci_name(dev), irq, new_irq);
+			udelay(15);	/* unknown if delay really needed */
+			pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
+		}
+	}
+}
+DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_via_irq);
 
 /*
  * VIA VT82C598 has its device ID settable and many BIOSes
#1 lore raw
Quoted 2 lines · Sergio Monteiro Basto

but I have
time to test it

Sorry, I want to write, "but I haven't time to test it "