From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTP id 90A2FDDEBF for ; Mon, 5 Feb 2007 11:11:41 +1100 (EST) Subject: Re: [PATCH] Assign all PCI busses on G3 Blue & White From: Benjamin Herrenschmidt To: Pavel Roskin In-Reply-To: <1170576968.21644.55.camel@dv> References: <1170576968.21644.55.camel@dv> Content-Type: text/plain Date: Mon, 05 Feb 2007 11:11:29 +1100 Message-Id: <1170634289.2620.71.camel@localhost.localdomain> Mime-Version: 1.0 Cc: linuxppc-dev@ozlabs.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Sun, 2007-02-04 at 03:16 -0500, Pavel Roskin wrote: > From: Pavel Roskin > > G3 Blue & White is misconfigured by default so that CardBus controllers > in PCI slots don't work. The PCI bridge is programmed to only allow > access to bus 1 but not higher busses. > > The patch forces the PCI busses to be reassigned if a Grackle controller > is found and the machine identifies itself as "PowerMac1,1" > > Signed-off-by: Pavel Roskin Acked-by: Benjamin Herrenschmidt > --- > My previous attempt to fix this bug can be found in this thread: > http://ozlabs.org/pipermail/linuxppc-dev/2004-May/thread.html#17056 > The new patch relies on the existing common PCI code and doesn't poke > bridge registers itself. It would even do the right thing if a PCI or > CardBus bridge is inserted into the upper slot reserved for video cards > and connected directly to bus 0. > --- > > arch/powerpc/sysdev/grackle.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/arch/powerpc/sysdev/grackle.c b/arch/powerpc/sysdev/grackle.c > index b6ec793..4205362 100644 > --- a/arch/powerpc/sysdev/grackle.c > +++ b/arch/powerpc/sysdev/grackle.c > @@ -56,6 +56,8 @@ static inline void grackle_set_loop_snoop(struct pci_controller *bp, int enable) > void __init setup_grackle(struct pci_controller *hose) > { > setup_indirect_pci(hose, 0xfec00000, 0xfee00000); > + if (machine_is_compatible("PowerMac1,1")) > + pci_assign_all_buses = 1; > if (machine_is_compatible("AAPL,PowerBook1998")) > grackle_set_loop_snoop(hose, 1); > #if 0 /* Disabled for now, HW problems ??? */ > >