Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753897AbXL0Vrz (ORCPT ); Thu, 27 Dec 2007 16:47:55 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752267AbXL0Vrq (ORCPT ); Thu, 27 Dec 2007 16:47:46 -0500 Received: from smtp2.linux-foundation.org ([207.189.120.14]:42933 "EHLO smtp2.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752028AbXL0Vrp (ORCPT ); Thu, 27 Dec 2007 16:47:45 -0500 Date: Thu, 27 Dec 2007 13:46:32 -0800 (PST) From: Linus Torvalds To: Loic Prylli cc: Robert Hancock , Jeff Garzik , Arjan van de Ven , Linux Kernel Mailing List , gregkh@suse.de, linux-pci , Benjamin Herrenschmidt , Martin Mares , Matthew Wilcox , Kai Ruhnau Subject: Re: [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in In-Reply-To: Message-ID: References: <4773EBB4.2020805@shaw.ca> <477414C9.3040906@myri.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1497 Lines: 42 On Thu, 27 Dec 2007, Linus Torvalds wrote: > > Kai, can you try that? Just remove the call to pci_enable_crs() in > pci_scan_bridge() in drivers/pci/probe.c, and see if mmconfig starts > working for you? We could also make the error handling more permissive, and just check for the low 16 bits, which is the part that the CRS spec mentions the actual value for. The whole vendor ID of 0x0001 is mentioned int he CRS spec as being explicitly chosen exactly because it's invalid. That said, given that we don't actually reap any benefits from CRS support right now *anyway*, I think the right thing to do is disable it by default. But it would be interesting to know if this patch makes it work on those ATI bridges.. Linus --- drivers/pci/probe.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 2f75d69..94cd3a4 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -908,7 +908,7 @@ pci_scan_device(struct pci_bus *bus, int devfn) return NULL; /* Configuration request Retry Status */ - while (l == 0xffff0001) { + while ((l & 0xffff) == 0x0001) { msleep(delay); delay *= 2; if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, &l)) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/