Commit 922ec28b authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/gregkh/linux/pci-2.6

into home.osdl.org:/home/torvalds/v2.5/linux
parents 1fe2d389 62ec5263
...@@ -33,13 +33,6 @@ ...@@ -33,13 +33,6 @@
# error NR_IRQS < MARVEL_NR_IRQS !!! # error NR_IRQS < MARVEL_NR_IRQS !!!
#endif #endif
/* ??? Should probably be generic. */
#ifdef CONFIG_PCI_NAMES
#define pci_pretty_name(x) ((x)->pretty_name)
#else
#define pci_pretty_name(x) ""
#endif
/* /*
* Interrupt handling. * Interrupt handling.
......
...@@ -31,12 +31,6 @@ ...@@ -31,12 +31,6 @@
#include <asm/kdebug.h> #include <asm/kdebug.h>
#include <asm/proto.h> #include <asm/proto.h>
#ifdef CONFIG_PCI_NAMES
#define pci_pretty_name(dev) ((dev)->pretty_name)
#else
#define pci_pretty_name(dev) ""
#endif
dma_addr_t bad_dma_address; dma_addr_t bad_dma_address;
unsigned long iommu_bus_base; /* GART remapping area (physical) */ unsigned long iommu_bus_base; /* GART remapping area (physical) */
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/proc_fs.h> #include <linux/proc_fs.h>
#include <linux/miscdevice.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include <linux/pci.h> #include <linux/pci.h>
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/proc_fs.h> #include <linux/proc_fs.h>
#include <linux/miscdevice.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include <linux/pci.h> #include <linux/pci.h>
......
...@@ -80,14 +80,14 @@ void __devinit pci_name_device(struct pci_dev *dev) ...@@ -80,14 +80,14 @@ void __devinit pci_name_device(struct pci_dev *dev)
} }
/* Ok, found the vendor, but unknown device */ /* Ok, found the vendor, but unknown device */
sprintf(name, "PCI device %04x:%04x (%." DEVICE_NAME_HALF "s)", sprintf(name, "PCI device %04x:%04x (%." PCI_NAME_HALF "s)",
dev->vendor, dev->device, vendor_p->name); dev->vendor, dev->device, vendor_p->name);
return; return;
/* Full match */ /* Full match */
match_device: { match_device: {
char *n = name + sprintf(name, "%." DEVICE_NAME_HALF char *n = name + sprintf(name, "%." PCI_NAME_HALF
"s %." DEVICE_NAME_HALF "s", "s %." PCI_NAME_HALF "s",
vendor_p->name, device_p->name); vendor_p->name, device_p->name);
int nr = device_p->seen + 1; int nr = device_p->seen + 1;
device_p->seen = nr; device_p->seen = nr;
......
...@@ -122,10 +122,8 @@ __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev) ...@@ -122,10 +122,8 @@ __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev)
if (!pci_dev->driver && drv->probe) { if (!pci_dev->driver && drv->probe) {
error = pci_device_probe_static(drv, pci_dev); error = pci_device_probe_static(drv, pci_dev);
if (error >= 0) if (error == -ENODEV)
return error; error = pci_device_probe_dynamic(drv, pci_dev);
error = pci_device_probe_dynamic(drv, pci_dev);
} }
return error; return error;
} }
......
...@@ -203,11 +203,6 @@ pci_setup_bridge(struct pci_bus *bus) ...@@ -203,11 +203,6 @@ pci_setup_bridge(struct pci_bus *bus)
Enable ISA in either case (FIXME!). */ Enable ISA in either case (FIXME!). */
l = (bus->resource[0]->flags & IORESOURCE_BUS_HAS_VGA) ? 0x0c : 0x04; l = (bus->resource[0]->flags & IORESOURCE_BUS_HAS_VGA) ? 0x0c : 0x04;
pci_write_config_word(bridge, PCI_BRIDGE_CONTROL, l); pci_write_config_word(bridge, PCI_BRIDGE_CONTROL, l);
/* Make sure the bridge COMMAND register has the appropriate
bits set, just in case...
*/
pcibios_enable_device(bridge, 0xfff);
} }
/* Check whether the bridge supports optional I/O and /* Check whether the bridge supports optional I/O and
......
...@@ -420,7 +420,9 @@ struct pci_dev { ...@@ -420,7 +420,9 @@ struct pci_dev {
unsigned int transparent:1; /* Transparent PCI bridge */ unsigned int transparent:1; /* Transparent PCI bridge */
unsigned int multifunction:1;/* Part of multi-function device */ unsigned int multifunction:1;/* Part of multi-function device */
#ifdef CONFIG_PCI_NAMES #ifdef CONFIG_PCI_NAMES
char pretty_name[DEVICE_NAME_SIZE]; /* pretty name for users to see */ #define PCI_NAME_SIZE 50
#define PCI_NAME_HALF __stringify(20) /* less than half to handle slop */
char pretty_name[PCI_NAME_SIZE]; /* pretty name for users to see */
#endif #endif
}; };
...@@ -524,6 +526,32 @@ struct pci_driver { ...@@ -524,6 +526,32 @@ struct pci_driver {
#define to_pci_driver(drv) container_of(drv,struct pci_driver, driver) #define to_pci_driver(drv) container_of(drv,struct pci_driver, driver)
/**
* PCI_DEVICE - macro used to describe a specific pci device
* @vend: the 16 bit PCI Vendor ID
* @dev: the 16 bit PCI Device ID
*
* This macro is used to create a struct pci_device_id that matches a
* specific device. The subvendor and subdevice fields will be set to
* PCI_ANY_ID.
*/
#define PCI_DEVICE(vend,dev) \
.vendor = (vend), .device = (dev), \
.subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
/**
* PCI_DEVICE_CLASS - macro used to describe a specific pci device class
* @dev_class: the class, subclass, prog-if triple for this device
* @dev_class_mask: the class mask for this device
*
* This macro is used to create a struct pci_device_id that matches a
* specific PCI class. The vendor, device, subvendor, and subdevice
* fields will be set to PCI_ANY_ID.
*/
#define PCI_DEVICE_CLASS(dev_class,dev_class_mask) \
.class = (dev_class), .class_mask = (dev_class_mask), \
.vendor = PCI_ANY_ID, .device = PCI_ANY_ID, \
.subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
/* these external functions are only available when PCI support is enabled */ /* these external functions are only available when PCI support is enabled */
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
...@@ -814,6 +842,13 @@ static inline char *pci_name(struct pci_dev *pdev) ...@@ -814,6 +842,13 @@ static inline char *pci_name(struct pci_dev *pdev)
return pdev->dev.bus_id; return pdev->dev.bus_id;
} }
/* Some archs want to see the pretty pci name, so use this macro */
#ifdef CONFIG_PCI_NAMES
#define pci_pretty_name(dev) ((dev)->pretty_name)
#else
#define pci_pretty_name(dev) ""
#endif
/* /*
* The world is not perfect and supplies us with broken PCI devices. * The world is not perfect and supplies us with broken PCI devices.
* For at least a part of these bugs we need a work-around, so both * For at least a part of these bugs we need a work-around, so both
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment