From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1Sa11a-0002PS-9q for mharc-grub-devel@gnu.org; Thu, 31 May 2012 04:46:30 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35935) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sa11S-0002N8-Ds for grub-devel@gnu.org; Thu, 31 May 2012 04:46:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Sa11J-0004SN-C8 for grub-devel@gnu.org; Thu, 31 May 2012 04:46:21 -0400 Received: from 37-46-169-123.customers.ownit.se ([37.46.169.123]:59180 helo=zoo.weinigel.se) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sa11J-0004Rs-5i for grub-devel@gnu.org; Thu, 31 May 2012 04:46:13 -0400 Received: from [127.0.0.1] (zoo.weinigel.se [127.0.0.1]) by zoo.weinigel.se (Postfix) with ESMTP id 7A9786000F; Thu, 31 May 2012 10:46:11 +0200 (CEST) Message-ID: <4FC72FD3.2030203@weinigel.se> Date: Thu, 31 May 2012 10:46:11 +0200 From: Christer Weinigel User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 MIME-Version: 1.0 To: The development of GNU GRUB Subject: EHCI: don't stop after finding the first controller X-Enigmail-Version: 1.4.1 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 37.46.169.123 Cc: =?windows-1252?Q?Ale=9A_Nesrsta?= X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 May 2012 08:46:28 -0000 Hi, Modern Intel chipsets have multiple EHCI controllers but the EHCI code will only detect the first one. I noticed this because on a test laptop all external USB ports are connected to the second EHCI controller so none of them would show up in grub. The reason is that the PCI code will stop if the PCI iterator function returns a nonzero value. Change the return value to zero on success so that the PCI iterator continues with the next controller. diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c index d8ecf26..240c0d5 100644 --- a/grub-core/bus/usb/ehci.c +++ b/grub-core/bus/usb/ehci.c @@ -839,7 +839,7 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: CONFIG_FLAG: %08x\n", grub_ehci_oper_read32 (e, GRUB_EHCI_CONFIG_FLAG)); - return 1; + return 0; fail: if (e)