Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: [PATCH] PCI quirk: VIA IRQ fixup should only run for VIA southbridges [PATCH] PCI: fix potential resource leak in drivers/pci/msi.c [PATCH] PCI: Documentation: no more device ids [PATCH] PCI: fix via irq SATA patch
This commit is contained in:
@@ -259,7 +259,17 @@ on the bus need to be capable of doing it, so this is something which needs
|
|||||||
to be handled by platform and generic code, not individual drivers.
|
to be handled by platform and generic code, not individual drivers.
|
||||||
|
|
||||||
|
|
||||||
8. Obsolete functions
|
8. Vendor and device identifications
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
For the future, let's avoid adding device ids to include/linux/pci_ids.h.
|
||||||
|
|
||||||
|
PCI_VENDOR_ID_xxx for vendors, and a hex constant for device ids.
|
||||||
|
|
||||||
|
Rationale: PCI_VENDOR_ID_xxx constants are re-used, but device ids are not.
|
||||||
|
Further, device ids are arbitrary hex numbers, normally used only in a
|
||||||
|
single location, the pci_device_id table.
|
||||||
|
|
||||||
|
9. Obsolete functions
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
There are several functions which you might come across when trying to
|
There are several functions which you might come across when trying to
|
||||||
port an old driver to the new PCI interface. They are no longer present
|
port an old driver to the new PCI interface. They are no longer present
|
||||||
|
@@ -591,7 +591,6 @@ static __init int via_router_probe(struct irq_router *r,
|
|||||||
case PCI_DEVICE_ID_VIA_8233A:
|
case PCI_DEVICE_ID_VIA_8233A:
|
||||||
case PCI_DEVICE_ID_VIA_8235:
|
case PCI_DEVICE_ID_VIA_8235:
|
||||||
case PCI_DEVICE_ID_VIA_8237:
|
case PCI_DEVICE_ID_VIA_8237:
|
||||||
case PCI_DEVICE_ID_VIA_8237_SATA:
|
|
||||||
/* FIXME: add new ones for 8233/5 */
|
/* FIXME: add new ones for 8233/5 */
|
||||||
r->name = "VIA";
|
r->name = "VIA";
|
||||||
r->get = pirq_via_get;
|
r->get = pirq_via_get;
|
||||||
|
@@ -793,8 +793,10 @@ static int msix_capability_init(struct pci_dev *dev,
|
|||||||
if (!entry)
|
if (!entry)
|
||||||
break;
|
break;
|
||||||
vector = get_msi_vector(dev);
|
vector = get_msi_vector(dev);
|
||||||
if (vector < 0)
|
if (vector < 0) {
|
||||||
|
kmem_cache_free(msi_cachep, entry);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
j = entries[i].entry;
|
j = entries[i].entry;
|
||||||
entries[i].vector = vector;
|
entries[i].vector = vector;
|
||||||
|
@@ -642,13 +642,15 @@ static void quirk_via_irq(struct pci_dev *dev)
|
|||||||
new_irq = dev->irq & 0xf;
|
new_irq = dev->irq & 0xf;
|
||||||
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
|
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
|
||||||
if (new_irq != irq) {
|
if (new_irq != irq) {
|
||||||
printk(KERN_INFO "PCI: Via IRQ fixup for %s, from %d to %d\n",
|
printk(KERN_INFO "PCI: VIA IRQ fixup for %s, from %d to %d\n",
|
||||||
pci_name(dev), irq, new_irq);
|
pci_name(dev), irq, new_irq);
|
||||||
udelay(15); /* unknown if delay really needed */
|
udelay(15); /* unknown if delay really needed */
|
||||||
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
|
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, 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);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* VIA VT82C598 has its device ID settable and many BIOSes
|
* VIA VT82C598 has its device ID settable and many BIOSes
|
||||||
|
Reference in New Issue
Block a user