aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/pci_sabre.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-03-11 19:42:53 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 04:55:19 -0400
commit97b3cf050b467dda571943ceadff5452bed04549 (patch)
treec5dbb828eb40f84d6203cfd5aaa56f12c4548b71 /arch/sparc64/kernel/pci_sabre.c
parentc6e87566ea080bbbe926c0e429fed48e6f680d93 (diff)
[SPARC64]: Add dummy host controller to root of all PCI domains.
We fake up a dummy one in all cases because that is the simplest thing to do and it happens to be necessary for hypervisor systems. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/pci_sabre.c')
-rw-r--r--arch/sparc64/kernel/pci_sabre.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/pci_sabre.c b/arch/sparc64/kernel/pci_sabre.c
index 1bd7fc7c05e6..a2f129d29c20 100644
--- a/arch/sparc64/kernel/pci_sabre.c
+++ b/arch/sparc64/kernel/pci_sabre.c
@@ -319,6 +319,12 @@ static int __sabre_read_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn,
319static int sabre_read_pci_cfg(struct pci_bus *bus, unsigned int devfn, 319static int sabre_read_pci_cfg(struct pci_bus *bus, unsigned int devfn,
320 int where, int size, u32 *value) 320 int where, int size, u32 *value)
321{ 321{
322 struct pci_pbm_info *pbm = bus->sysdata;
323
324 if (bus == pbm->pci_bus && devfn == 0x00)
325 return pci_host_bridge_read_pci_cfg(bus, devfn, where,
326 size, value);
327
322 if (!bus->number && sabre_out_of_range(devfn)) { 328 if (!bus->number && sabre_out_of_range(devfn)) {
323 switch (size) { 329 switch (size) {
324 case 1: 330 case 1:
@@ -435,6 +441,12 @@ static int __sabre_write_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn,
435static int sabre_write_pci_cfg(struct pci_bus *bus, unsigned int devfn, 441static int sabre_write_pci_cfg(struct pci_bus *bus, unsigned int devfn,
436 int where, int size, u32 value) 442 int where, int size, u32 value)
437{ 443{
444 struct pci_pbm_info *pbm = bus->sysdata;
445
446 if (bus == pbm->pci_bus && devfn == 0x00)
447 return pci_host_bridge_write_pci_cfg(bus, devfn, where,
448 size, value);
449
438 if (bus->number) 450 if (bus->number)
439 return __sabre_write_pci_cfg(bus, devfn, where, size, value); 451 return __sabre_write_pci_cfg(bus, devfn, where, size, value);
440 452