PCI: connect struct pci_dev to struct pci_slot
[deliverable/linux.git] / drivers / pci / probe.c
index dd9161a054e1c1264891a918a634d5a60fa0d062..7aa71636dd3c3d7534a1e0fd47156a8e1a6a7ee4 100644 (file)
@@ -304,9 +304,8 @@ static int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
                } else {
                        res->start = l64;
                        res->end = l64 + sz64;
-                       printk(KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
-                               pci_name(dev), pos, (unsigned long long)res->start,
-                               (unsigned long long)res->end);
+                       printk(KERN_DEBUG "PCI: %s reg %x 64bit mmio: %pR\n",
+                               pci_name(dev), pos, res);
                }
        } else {
                sz = pci_size(l, sz, mask);
@@ -316,9 +315,10 @@ static int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
 
                res->start = l;
                res->end = l + sz;
-               printk(KERN_DEBUG "PCI: %s reg %x %s: [%llx, %llx]\n", pci_name(dev),
-                       pos, (res->flags & IORESOURCE_IO) ? "io port":"32bit mmio",
-                       (unsigned long long)res->start, (unsigned long long)res->end);
+               printk(KERN_DEBUG "PCI: %s reg %x %s: %pR\n",
+                      pci_name(dev), pos,
+                      (res->flags & IORESOURCE_IO) ? "io port":"32bit mmio",
+                      res);
        }
 
  out:
@@ -389,9 +389,8 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
                        res->start = base;
                if (!res->end)
                        res->end = limit + 0xfff;
-               printk(KERN_DEBUG "PCI: bridge %s io port: [%llx, %llx]\n",
-                       pci_name(dev), (unsigned long long) res->start,
-                       (unsigned long long) res->end);
+               printk(KERN_DEBUG "PCI: bridge %s io port: %pR\n",
+                      pci_name(dev), res);
        }
 
        res = child->resource[1];
@@ -403,9 +402,8 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
                res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM;
                res->start = base;
                res->end = limit + 0xfffff;
-               printk(KERN_DEBUG "PCI: bridge %s 32bit mmio: [%llx, %llx]\n",
-                       pci_name(dev), (unsigned long long) res->start,
-                       (unsigned long long) res->end);
+               printk(KERN_DEBUG "PCI: bridge %s 32bit mmio: %pR\n",
+                      pci_name(dev), res);
        }
 
        res = child->resource[2];
@@ -441,9 +439,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
                res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH;
                res->start = base;
                res->end = limit + 0xfffff;
-               printk(KERN_DEBUG "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n",
-                       pci_name(dev), (res->flags & PCI_PREF_RANGE_TYPE_64) ? "64" : "32",
-                       (unsigned long long) res->start, (unsigned long long) res->end);
+               printk(KERN_DEBUG "PCI: bridge %s %sbit mmio pref: %pR\n",
+                      pci_name(dev),
+                      (res->flags & PCI_PREF_RANGE_TYPE_64) ? "64":"32", res);
        }
 }
 
@@ -764,7 +762,7 @@ static int pci_setup_device(struct pci_dev * dev)
        dev->class = class;
        class >>= 8;
 
-       dev_dbg(&dev->dev, "found [%04x/%04x] class %06x header type %02x\n",
+       dev_dbg(&dev->dev, "found [%04x:%04x] class %06x header type %02x\n",
                 dev->vendor, dev->device, class, dev->hdr_type);
 
        /* "Unknown power state" */
@@ -951,6 +949,7 @@ EXPORT_SYMBOL(alloc_pci_dev);
 static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn)
 {
        struct pci_dev *dev;
+       struct pci_slot *slot;
        u32 l;
        u8 hdr_type;
        int delay = 1;
@@ -999,6 +998,10 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn)
        dev->error_state = pci_channel_io_normal;
        set_pcie_port_type(dev);
 
+       list_for_each_entry(slot, &bus->slots, list)
+               if (PCI_SLOT(devfn) == slot->number)
+                       dev->slot = slot;
+
        /* Assume 32-bit PCI; let 64-bit PCI cards (which are far rarer)
           set this higher, assuming the system even supports it.  */
        dev->dma_mask = 0xffffffff;
This page took 0.042214 seconds and 5 git commands to generate.