Skip to content

Commit

Permalink
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
Linus Torvalds committed Apr 27, 2006
2 parents 4e9a4b7 + 75cf745 commit 94b1661
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 5 deletions.
12 changes: 11 additions & 1 deletion Documentation/pci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.


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
port an old driver to the new PCI interface. They are no longer present
Expand Down
1 change: 0 additions & 1 deletion arch/i386/pci/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -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_8235:
case PCI_DEVICE_ID_VIA_8237:
case PCI_DEVICE_ID_VIA_8237_SATA:
/* FIXME: add new ones for 8233/5 */
r->name = "VIA";
r->get = pirq_via_get;
Expand Down
4 changes: 3 additions & 1 deletion drivers/pci/msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -793,8 +793,10 @@ static int msix_capability_init(struct pci_dev *dev,
if (!entry)
break;
vector = get_msi_vector(dev);
if (vector < 0)
if (vector < 0) {
kmem_cache_free(msi_cachep, entry);
break;
}

j = entries[i].entry;
entries[i].vector = vector;
Expand Down
6 changes: 4 additions & 2 deletions drivers/pci/quirks.c
Original file line number Diff line number Diff line change
Expand Up @@ -642,13 +642,15 @@ static void quirk_via_irq(struct pci_dev *dev)
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",
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);
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
Expand Down

0 comments on commit 94b1661

Please sign in to comment.