powerpc: Fix pciconfig_iobase system call on PCI-Express powermac
authorPaul Mackerras <paulus@samba.org>
Sun, 28 Dec 2008 14:12:57 +0000 (14:12 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 8 Jan 2009 05:25:11 +0000 (16:25 +1100)
commit16124f10df43e6e08783f1fede6888bf36ac705c
treee968c899a9dffaf7d10a8c698ae54d3259e56d71
parent1d5bc03a8183d12c7daf4e7c69cce8d9c4b9a86b
powerpc: Fix pciconfig_iobase system call on PCI-Express powermac

X has been failing to start on my quad G5 powermac since commit
1fd0f52583a85b21a394201b007bc1ee104b235d ("powerpc: Fix domain numbers
in /proc on 64-bit") went in.  The reason is that the change allows X
to see the PCI-PCI bridge above the video card (previously it was
obscured by the fact that there were two "00" directories in
/proc/bus/pci), and the pciconfig_iobase system call on the bridge is
failing because of a hack that we have to return information about the
AGP bus when X asks about bus 0.  This machine doesn't have an AGP bus
(it has PCI Express) and so the pciconfig_iobase call is returning -1,
which ultimately causes X to fail to start.

This fixes it by checking that we have an AGP bridge before
redirecting the pciconfig_iobase call to return information about the
AGP bus.  With this, X starts successfully both on a quad G5 with
PCI Express and on an older dual G5 with AGP.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/pci_64.c