From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Horman Subject: Re: [PATCH v2 2/2] ARM: shmobile: lager: enable USB3.0 Date: Tue, 4 Nov 2014 09:44:13 +0900 Message-ID: <20141104004413.GC22891@verge.net.au> References: <1414147307-4584-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> <1414147307-4584-3-git-send-email-yoshihiro.shimoda.uh@renesas.com> <5450CD42.9070101@renesas.com> <20141029235748.GD4599@verge.net.au> <2b89f66c72894bdf8bdce7aab7c69281@HKNPR06MB322.apcprd06.prod.outlook.com> <20141031050422.GC10619@verge.net.au> <9cedf0445a5a4f67abf5e6e1b8aac631@HKNPR06MB322.apcprd06.prod.outlook.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <9cedf0445a5a4f67abf5e6e1b8aac631@HKNPR06MB322.apcprd06.prod.outlook.com> Sender: linux-sh-owner@vger.kernel.org To: yoshihiro shimoda Cc: Magnus Damm , Rob Herring , Pawel Moll , Mark Rutland , "ijc+devicetree@hellion.org.uk" , Kumar Gala , Russell King - ARM Linux , "devicetree@vger.kernel.org" , Linux-USB , SH-Linux List-Id: devicetree@vger.kernel.org On Fri, Oct 31, 2014 at 01:22:22PM +0000, yoshihiro shimoda wrote: > Hi Simon-san, > > > On Fri, Oct 31, 2014 at 02:06:14AM +0000, yoshihiro shimoda wrote: > > > Hi Simon-san, > > > > > > > On Wed, Oct 29, 2014 at 08:19:30PM +0900, Yoshihiro Shimoda wrote: > > > > > Hi Magnus-san, > > > > > > > > > > (2014/10/29 15:53), Magnus Damm wrote: > > > < snip > > > > > > > > > > > > > Hi Shimoda-san, > > > > > > > > > > > > Thanks for your patch. I'm fine with this patch as a first step, > > > > > > but I'm wondering what the reason is to prioritize USB 2.0 over USB 3.0? > > > > > > > > > > I investigated this reason today, and I found the reason is > > > > > request_firmware(). I checked the following environments: > > > > > > > > > > Case 1: xHCI and EHCI and OHCI are enabled "=y" > > > > > Case 2: xHCI and EHCI and OHCI are loadable modules "=m" > > > > > Case 3: xHCI and EHCI and OHCI are enabled "=y", > > > > > and CONFIG_EXTRA_FIRMWARE is enabled > > > > > > > > > > The results are: > > > > > - In "Case 1", EHCI and OHCI are probed first because xHCI didn't find the firmware. > > > > > - In "Case 2" and "Case 3", xHCI is probed first. > > > > > > > > > > > Is the current order just based on device init order? In my mind > > > > > > the expected behavior would be to always use USB 3.0 if it > > > > > > happens to be available in the hardware, specified in the DTS, > > > > > > enabled by the kernel configuration and firmware is loadable. Or > > > > > > does some case exist where it is better to use USB 2.0? I suspect no. > > > > > > > > > > I agree with you. > > > > > > > > > > > So I wonder if you have any plans how to make USB 3.0 enabled by > > > > > > default on Lager? > > > > > > > > > > It depends on a kernel config. I'm not sure of the > > > > > shmobile_defconfig strategy. But, in my opinion, one of a > > > > > solution is kernel modules (this means the "Case 2".) > > > > > > > > It sounds like we should enable CONFIG_EXTRA_FIRMWARE in > > > > shmobile_defconfig. I wonder what if any fallout we can foresee occurring if we do that. > > > > > > According to the firmware/README.AddingFirmware, we are unable to add a new firmware image to the firmware directory > > now. > > > So, if we enable CONFIG_EXTRA_FIRMWARE with the xHCI firmware, we will not build kernel because the xHCI firmware doesn't > > exist in the linux.git. > > > > > > === from firmware/README.AddingFirmware > > > ===================================== > > > This directory is _NOT_ for adding arbitrary new firmware images. The > > > place to add those is the separate linux-firmware repository: > > > > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware. > > > git > > > ====================================================================== > > > ======== > > > > Thanks. It seems that EXTRA_FIRMWARE is not an option from a mainline point of view after all. > > > > Is the problem in case 1 that the firmware can't be found because userspace does exist yet and thus can't be loaded from > > there? > > That's correct. > If EXTRA_FIRMWARE is not set, the following error happens: > > xhci-hcd ee000000.usb: Direct firmware load for r8a779x_usb3_v1.dlmem failed with error -2 > xhci-hcd ee000000.usb: can't setup: -2 > xhci-hcd ee000000.usb: USB bus 1 deregistered > xhci-hcd: probe of ee000000.usb failed with error -2 At the risk of adding noise to this discussion: It seems like case 2 with a fallback to case 3 is the way to go.