Messages in this thread | | | Subject | Re: [PATCH] usb: hub: try old enumeration scheme first for high speed devices | From | Roger Quadros <> | Date | Thu, 16 Aug 2018 14:13:46 +0300 |
| |
On 16/08/18 13:59, Zengtao (B) wrote: > Hi Roger: > >> -----Original Message----- >> From: Roger Quadros [mailto:rogerq@ti.com] >> Sent: Thursday, August 16, 2018 3:17 PM >> To: Zengtao (B) <prime.zeng@hisilicon.com>; Alan Stern >> <stern@rowland.harvard.edu> >> Cc: gregkh@linuxfoundation.org; mathias.nyman@linux.intel.com; >> drinkcat@chromium.org; felipe.balbi@linux.intel.com; >> drake@endlessm.com; mike.looijmans@topic.nl; joe@perches.com; >> linux-usb@vger.kernel.org; linux-kernel@vger.kernel.org >> Subject: Re: [PATCH] usb: hub: try old enumeration scheme first for high >> speed devices >> >> On 16/08/18 09:21, Zengtao (B) wrote: >>> Hi alan: >>> >>>> -----Original Message----- >>>> From: Alan Stern [mailto:stern@rowland.harvard.edu] >>>> Sent: Tuesday, August 14, 2018 10:40 PM >>>> To: Zengtao (B) <prime.zeng@hisilicon.com> >>>> Cc: Roger Quadros <rogerq@ti.com>; gregkh@linuxfoundation.org; >>>> mathias.nyman@linux.intel.com; drinkcat@chromium.org; >>>> felipe.balbi@linux.intel.com; drake@endlessm.com; >>>> mike.looijmans@topic.nl; joe@perches.com; linux-usb@vger.kernel.org; >>>> linux-kernel@vger.kernel.org >>>> Subject: RE: [PATCH] usb: hub: try old enumeration scheme first for >>>> high speed devices >>>> >>>> On Tue, 14 Aug 2018, Zengtao (B) wrote: >>>> >>>>> Hi alan: >>>>> >>>>>> -----Original Message----- >>>>>> From: linux-usb-owner@vger.kernel.org >>>>>> [mailto:linux-usb-owner@vger.kernel.org] On Behalf Of Alan Stern >>>>>> Sent: Friday, August 10, 2018 10:20 PM >>>>>> To: Roger Quadros <rogerq@ti.com> >>>>>> Cc: Zengtao (B) <prime.zeng@hisilicon.com>; >>>>>> gregkh@linuxfoundation.org; mathias.nyman@linux.intel.com; >>>>>> drinkcat@chromium.org; felipe.balbi@linux.intel.com; >>>>>> drake@endlessm.com; mike.looijmans@topic.nl; joe@perches.com; >>>>>> linux-usb@vger.kernel.org; linux-kernel@vger.kernel.org >>>>>> Subject: Re: [PATCH] usb: hub: try old enumeration scheme first for >>>>>> high speed devices >>>>>> >>>>>> On Fri, 10 Aug 2018, Roger Quadros wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> On 10/08/18 18:01, Zeng Tao wrote: >>>>>>>> The new scheme is required just to support legacy low and >>>>>>>> full-speed devices. For high speed devices, it will slower the >>>>>>>> enumeration >>>> speed. >>>>>>>> So in this patch we try the "old" enumeration scheme first for >>>>>>>> high speed devices. >>>>>>> >>>>>>> How slow does it get? Is it significant? >>>>>>> Do we risk breaking existing HS devices that work? I don't think >>>>>>> we can be sure till we run this through testing. >>>>>> >>>>>> Indeed. I am extremely skeptical about a patch like this, unless >>>>>> somebody can show that Windows uses the "old" scheme for >> high-speed >>>> devices. >>>>> >>>>> Yes, this is what the windows has done, you can refer to >>>>> >> https://blogs.msdn.microsoft.com/usbcoreblog/2013/04/11/usb-2-1-2-0- >>>>> 1- 1-device-enumeration-changes-in-windows-8/ >>>> >>>> And that blog post is 5 years old! >>>> >>>> Okay, I think we can go ahead and make this change. However, you >>>> should update the patch description to mention what Microsoft did in >>>> Windows 8 and say that the new behavior matches theirs. >>>> >>> Okay, I will update it the change log in v2. >>> >>>> Also, as Roger mentioned, you should update the documentation to say >>>> that the old_scheme_first module parameter now applies only to low- >>>> and full-speed devices, since high- and SuperSpeed devices always use >> the old scheme first. >>>> >>> >>> Since we should have dedicated enumeration flow for SS, HIGH, low and >>> full speed devices, So I think the old_scheme_first and use_both_schemes >> parameters should be removed. >>> What do you think about it? >> >> I think we should retain them as some host controllers can have issues and >> these parameters give some control to system integrators to workaround if >> required. >> >> I'm aware of one errata [1] that requires the old_scheme_first to be set in >> certain circumstances. >> >> [1] http://www.ti.com/lit/er/sprz429l/sprz429l.pdf >> Section i897 > > I 'd rather to use a quirk to workaround. > And the main idea is to keep the enumeration flow as simple as possible.
The workaround isn't always required. Only in certain circumstances decided by the user. How can a user set the quirk? Now it is as easy as setting it in the kernel command line.
One option would be to use the old_scheme_first_port via sysfs. /sys/bus/usb/devices/.../(hub interface)/portX/quirks
But that won't work if devices are hard-wired in the system and get enumerated before user gets access to sysfs. We need a way to force one type of scheme before devices are enumerated.
-- cheers, -roger
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
| |