aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sparc64/kernel/pci.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index ec5f85b030ef..8a7c699bb109 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -392,7 +392,8 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
392 if (type == NULL) 392 if (type == NULL)
393 type = ""; 393 type = "";
394 394
395 printk(" create device, devfn: %x, type: %s\n", devfn, type); 395 printk(" create device, devfn: %x, type: %s hostcontroller(%d)\n",
396 devfn, type, host_controller);
396 397
397 dev->bus = bus; 398 dev->bus = bus;
398 dev->sysdata = node; 399 dev->sysdata = node;
@@ -407,6 +408,9 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
407 dev->subsystem_vendor = 0x0000; 408 dev->subsystem_vendor = 0x0000;
408 dev->subsystem_device = 0x0000; 409 dev->subsystem_device = 0x0000;
409 dev->cfg_size = 256; 410 dev->cfg_size = 256;
411 dev->class = PCI_CLASS_BRIDGE_HOST << 8;
412 sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus),
413 0x00, PCI_SLOT(devfn), PCI_FUNC(devfn));
410 } else { 414 } else {
411 dev->vendor = of_getintprop_default(node, "vendor-id", 0xffff); 415 dev->vendor = of_getintprop_default(node, "vendor-id", 0xffff);
412 dev->device = of_getintprop_default(node, "device-id", 0xffff); 416 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,
416 of_getintprop_default(node, "subsystem-id", 0); 420 of_getintprop_default(node, "subsystem-id", 0);
417 421
418 dev->cfg_size = pci_cfg_space_size(dev); 422 dev->cfg_size = pci_cfg_space_size(dev);
419 }
420 sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus),
421 dev->bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn));
422 423
423 if (host_controller) {
424 dev->class = PCI_CLASS_BRIDGE_HOST << 8;
425 } else {
426 /* We can't actually use the firmware value, we have 424 /* We can't actually use the firmware value, we have
427 * to read what is in the register right now. One 425 * to read what is in the register right now. One
428 * reason is that in the case of IDE interfaces the 426 * 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,
431 */ 429 */
432 pci_read_config_dword(dev, PCI_CLASS_REVISION, &class); 430 pci_read_config_dword(dev, PCI_CLASS_REVISION, &class);
433 dev->class = class >> 8; 431 dev->class = class >> 8;
432
433 sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus),
434 dev->bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn));
434 } 435 }
435 printk(" class: 0x%x\n", dev->class); 436 printk(" class: 0x%x device name: %s\n",
437 dev->class, pci_name(dev));
436 438
437 dev->current_state = 4; /* unknown power state */ 439 dev->current_state = 4; /* unknown power state */
438 dev->error_state = pci_channel_io_normal; 440 dev->error_state = pci_channel_io_normal;