diff options
author | David S. Miller <davem@davemloft.net> | 2010-02-20 13:53:16 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-20 13:53:16 -0800 |
commit | 198d2f63a6096fe575b696b13ba61b62c620266f (patch) | |
tree | d0c2b0697370cc670029cd1eb2a80c35c71eac60 /arch/sparc/kernel/pci.c | |
parent | 0da2b300b91ddeb9944c3fb4faaf78c1c482c0af (diff) | |
parent | 1f474646fdc36b457606bbcd6a3592e6cbd31ac4 (diff) | |
download | op-kernel-dev-198d2f63a6096fe575b696b13ba61b62c620266f.zip op-kernel-dev-198d2f63a6096fe575b696b13ba61b62c620266f.tar.gz |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Diffstat (limited to 'arch/sparc/kernel/pci.c')
-rw-r--r-- | arch/sparc/kernel/pci.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c index 539e83f..592b03d 100644 --- a/arch/sparc/kernel/pci.c +++ b/arch/sparc/kernel/pci.c @@ -247,6 +247,7 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, struct pci_bus *bus, int devfn) { struct dev_archdata *sd; + struct pci_slot *slot; struct of_device *op; struct pci_dev *dev; const char *type; @@ -286,6 +287,11 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, dev->dev.bus = &pci_bus_type; dev->devfn = devfn; dev->multifunction = 0; /* maybe a lie? */ + set_pcie_port_type(dev); + + list_for_each_entry(slot, &dev->bus->slots, list) + if (PCI_SLOT(dev->devfn) == slot->number) + dev->slot = slot; dev->vendor = of_getintprop_default(node, "vendor-id", 0xffff); dev->device = of_getintprop_default(node, "device-id", 0xffff); @@ -322,6 +328,7 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, dev->current_state = 4; /* unknown power state */ dev->error_state = pci_channel_io_normal; + dev->dma_mask = 0xffffffff; if (!strcmp(node->name, "pci")) { /* a PCI-PCI bridge */ |