[SPARC64]: Force dummy host controller onto bus zero.
[powerpc.git] / arch / sparc64 / kernel / pci.c
index ec5f85b..8a7c699 100644 (file)
@@ -392,7 +392,8 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
        if (type == NULL)
                type = "";
 
-       printk("    create device, devfn: %x, type: %s\n", devfn, type);
+       printk("    create device, devfn: %x, type: %s hostcontroller(%d)\n",
+              devfn, type, host_controller);
 
        dev->bus = bus;
        dev->sysdata = node;
@@ -407,6 +408,9 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
                dev->subsystem_vendor = 0x0000;
                dev->subsystem_device = 0x0000;
                dev->cfg_size = 256;
+               dev->class = PCI_CLASS_BRIDGE_HOST << 8;
+               sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus),
+                       0x00, PCI_SLOT(devfn), PCI_FUNC(devfn));
        } else {
                dev->vendor = of_getintprop_default(node, "vendor-id", 0xffff);
                dev->device = of_getintprop_default(node, "device-id", 0xffff);
@@ -416,13 +420,7 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
                        of_getintprop_default(node, "subsystem-id", 0);
 
                dev->cfg_size = pci_cfg_space_size(dev);
-       }
-       sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus),
-               dev->bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn));
 
-       if (host_controller) {
-               dev->class = PCI_CLASS_BRIDGE_HOST << 8;
-       } else {
                /* We can't actually use the firmware value, we have
                 * to read what is in the register right now.  One
                 * reason is that in the case of IDE interfaces the
@@ -431,8 +429,12 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
                 */
                pci_read_config_dword(dev, PCI_CLASS_REVISION, &class);
                dev->class = class >> 8;
+
+               sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus),
+                       dev->bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn));
        }
-       printk("    class: 0x%x\n", dev->class);
+       printk("    class: 0x%x device name: %s\n",
+              dev->class, pci_name(dev));
 
        dev->current_state = 4;         /* unknown power state */
        dev->error_state = pci_channel_io_normal;