View | Details | Raw Unified | Return to bug 3319 | Differences between
and this patch

Collapse All | Expand All

(-)drivers/pci/quirks.c.orig (-22 / +4 lines)
Lines 369-376 Link Here
369
 * we must mask the PCI_INTERRUPT_LINE value versus 0xf to get
369
 * we must mask the PCI_INTERRUPT_LINE value versus 0xf to get
370
 * interrupts delivered properly.
370
 * interrupts delivered properly.
371
 *
371
 *
372
 * TODO: When we have device-specific interrupt routers,
373
 * quirk_via_irqpic will go away from quirks.
374
 */
372
 */
375
373
376
/*
374
/*
Lines 393-414 Link Here
393
		d->irq = irq;
391
		d->irq = irq;
394
}
392
}
395
393
396
static void __init quirk_via_irqpic(struct pci_dev *dev)
397
{
398
	u8 irq, new_irq = dev->irq & 0xf;
399
400
	pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
401
402
	if (new_irq != irq) {
403
		printk(KERN_INFO "PCI: Via IRQ fixup for %s, from %d to %d\n",
404
		       dev->slot_name, irq, new_irq);
405
406
		udelay(15);
407
		pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
408
	}
409
}
410
411
412
/*
394
/*
413
 * PIIX3 USB: We have to disable USB interrupts that are
395
 * PIIX3 USB: We have to disable USB interrupts that are
414
 * hardwired to PIRQD# and may be shared with an
396
 * hardwired to PIRQD# and may be shared with an
Lines 643-650 Link Here
643
625
644
static void __init quirk_via_bridge(struct pci_dev *pdev)
626
static void __init quirk_via_bridge(struct pci_dev *pdev)
645
{
627
{
646
	if(pdev->devfn == 0)
628
	if(pdev->devfn == 0) {
629
		printk(KERN_INFO "PCI: Via IRQ fixup\n");
647
		interrupt_line_quirk = 1;
630
		interrupt_line_quirk = 1;
631
	}
632
648
}
633
}
649
	
634
	
650
/* 
635
/* 
Lines 773-781 Link Here
773
#endif
758
#endif
774
	{ PCI_FIXUP_HEADER,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C586_3,	quirk_via_acpi },
759
	{ PCI_FIXUP_HEADER,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C586_3,	quirk_via_acpi },
775
	{ PCI_FIXUP_HEADER,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C686_4,	quirk_via_acpi },
760
	{ PCI_FIXUP_HEADER,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C686_4,	quirk_via_acpi },
776
	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C586_2,	quirk_via_irqpic },
777
	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C686_5,	quirk_via_irqpic },
778
	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_82C686_6,	quirk_via_irqpic },
779
761
780
	{ PCI_FIXUP_FINAL, 	PCI_VENDOR_ID_AMD,	PCI_DEVICE_ID_AMD_VIPER_7410,	quirk_amd_ioapic },
762
	{ PCI_FIXUP_FINAL, 	PCI_VENDOR_ID_AMD,	PCI_DEVICE_ID_AMD_VIPER_7410,	quirk_amd_ioapic },
781
	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_AMD,	PCI_DEVICE_ID_AMD_FE_GATE_700C, quirk_amd_ordering },
763
	{ PCI_FIXUP_FINAL,	PCI_VENDOR_ID_AMD,	PCI_DEVICE_ID_AMD_FE_GATE_700C, quirk_amd_ordering },

Return to bug 3319