diff options
-rw-r--r-- | arch/sparc64/kernel/pci.c | 18 |
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; |