## Automatically generated incremental diff ## From: linux-2.4.29-bk6 ## To: linux-2.4.29-bk7 ## Robot: $Id: make-incremental-diff,v 1.12 2004/01/06 07:19:36 hpa Exp $ diff -urN linux-2.4.29-bk6/Makefile linux-2.4.29-bk7/Makefile --- linux-2.4.29-bk6/Makefile 2005-02-01 02:50:43.735449970 -0800 +++ linux-2.4.29-bk7/Makefile 2005-02-01 02:50:46.195557009 -0800 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 29 -EXTRAVERSION = -bk6 +EXTRAVERSION = -bk7 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) diff -urN linux-2.4.29-bk6/arch/i386/kernel/pci-irq.c linux-2.4.29-bk7/arch/i386/kernel/pci-irq.c --- linux-2.4.29-bk6/arch/i386/kernel/pci-irq.c 2005-01-19 06:09:25.000000000 -0800 +++ linux-2.4.29-bk7/arch/i386/kernel/pci-irq.c 2005-02-01 02:50:46.196557053 -0800 @@ -1120,7 +1120,7 @@ void pcibios_enable_irq(struct pci_dev *dev) { u8 pin; - extern int interrupt_line_quirk; + extern int via_interrupt_line_quirk; struct pci_dev *temp_dev; pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); @@ -1173,7 +1173,7 @@ } /* VIA bridges use interrupt line for apic/pci steering across the V-Link */ - else if (interrupt_line_quirk) + else if (via_interrupt_line_quirk) pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq & 15); } diff -urN linux-2.4.29-bk6/arch/x86_64/kernel/pci-irq.c linux-2.4.29-bk7/arch/x86_64/kernel/pci-irq.c --- linux-2.4.29-bk6/arch/x86_64/kernel/pci-irq.c 2003-08-25 04:44:40.000000000 -0700 +++ linux-2.4.29-bk7/arch/x86_64/kernel/pci-irq.c 2005-02-01 02:50:46.198557140 -0800 @@ -742,7 +742,7 @@ void pcibios_enable_irq(struct pci_dev *dev) { u8 pin; - extern int interrupt_line_quirk; + extern int via_interrupt_line_quirk; pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); if (pin && !pcibios_lookup_irq(dev, 1) && !dev->irq) { @@ -762,6 +762,6 @@ } /* VIA bridges use interrupt line for apic/pci steering across the V-Link */ - else if (interrupt_line_quirk) + else if (via_interrupt_line_quirk) pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); } diff -urN linux-2.4.29-bk6/drivers/acpi/pci_irq.c linux-2.4.29-bk7/drivers/acpi/pci_irq.c --- linux-2.4.29-bk6/drivers/acpi/pci_irq.c 2004-08-07 16:26:04.000000000 -0700 +++ linux-2.4.29-bk7/drivers/acpi/pci_irq.c 2005-02-01 02:50:46.199557183 -0800 @@ -335,6 +335,7 @@ { int irq = 0; u8 pin = 0; + extern int via_interrupt_line_quirk; ACPI_FUNCTION_TRACE("acpi_pci_irq_enable"); @@ -383,6 +384,9 @@ } } + if (via_interrupt_line_quirk) + pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq & 15); + dev->irq = irq; ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device %s using IRQ %d\n", dev->slot_name, dev->irq)); diff -urN linux-2.4.29-bk6/drivers/pci/quirks.c linux-2.4.29-bk7/drivers/pci/quirks.c --- linux-2.4.29-bk6/drivers/pci/quirks.c 2004-11-17 03:54:21.000000000 -0800 +++ linux-2.4.29-bk7/drivers/pci/quirks.c 2005-02-01 02:50:46.207557531 -0800 @@ -368,9 +368,6 @@ * non-x86 architectures (yes Via exists on PPC among other places), * we must mask the PCI_INTERRUPT_LINE value versus 0xf to get * interrupts delivered properly. - * - * TODO: When we have device-specific interrupt routers, - * quirk_via_irqpic will go away from quirks. */ /* @@ -393,22 +390,6 @@ d->irq = irq; } -static void __init quirk_via_irqpic(struct pci_dev *dev) -{ - u8 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", - dev->slot_name, irq, new_irq); - - udelay(15); - pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq); - } -} - - /* * PIIX3 USB: We have to disable USB interrupts that are * hardwired to PIRQD# and may be shared with an @@ -639,12 +620,14 @@ * VIA northbridges care about PCI_INTERRUPT_LINE */ -int interrupt_line_quirk; +int via_interrupt_line_quirk; static void __init quirk_via_bridge(struct pci_dev *pdev) { - if(pdev->devfn == 0) - interrupt_line_quirk = 1; + if(pdev->devfn == 0) { + printk(KERN_INFO "PCI: Via IRQ fixup\n"); + via_interrupt_line_quirk = 1; + } } /* @@ -773,9 +756,6 @@ #endif { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_via_acpi }, { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_acpi }, - { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_2, quirk_via_irqpic }, - { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, quirk_via_irqpic }, - { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_6, quirk_via_irqpic }, { PCI_FIXUP_FINAL, PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_7410, quirk_amd_ioapic }, { PCI_FIXUP_FINAL, PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_FE_GATE_700C, quirk_amd_ordering },