On 16/08/18 13:59, Zengtao (B) wrote: > Hi Roger: > >> -----Original Message----- >> From: Roger Quadros [mailto:rogerq@xxxxxx] >> Sent: Thursday, August 16, 2018 3:17 PM >> To: Zengtao (B) <prime.zeng@xxxxxxxxxxxxx>; Alan Stern >> <stern@xxxxxxxxxxxxxxxxxxx> >> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; mathias.nyman@xxxxxxxxxxxxxxx; >> drinkcat@xxxxxxxxxxxx; felipe.balbi@xxxxxxxxxxxxxxx; >> drake@xxxxxxxxxxxx; mike.looijmans@xxxxxxxx; joe@xxxxxxxxxxx; >> linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx >> 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@xxxxxxxxxxxxxxxxxxx] >>>> Sent: Tuesday, August 14, 2018 10:40 PM >>>> To: Zengtao (B) <prime.zeng@xxxxxxxxxxxxx> >>>> Cc: Roger Quadros <rogerq@xxxxxx>; gregkh@xxxxxxxxxxxxxxxxxxx; >>>> mathias.nyman@xxxxxxxxxxxxxxx; drinkcat@xxxxxxxxxxxx; >>>> felipe.balbi@xxxxxxxxxxxxxxx; drake@xxxxxxxxxxxx; >>>> mike.looijmans@xxxxxxxx; joe@xxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; >>>> linux-kernel@xxxxxxxxxxxxxxx >>>> 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@xxxxxxxxxxxxxxx >>>>>> [mailto:linux-usb-owner@xxxxxxxxxxxxxxx] On Behalf Of Alan Stern >>>>>> Sent: Friday, August 10, 2018 10:20 PM >>>>>> To: Roger Quadros <rogerq@xxxxxx> >>>>>> Cc: Zengtao (B) <prime.zeng@xxxxxxxxxxxxx>; >>>>>> gregkh@xxxxxxxxxxxxxxxxxxx; mathias.nyman@xxxxxxxxxxxxxxx; >>>>>> drinkcat@xxxxxxxxxxxx; felipe.balbi@xxxxxxxxxxxxxxx; >>>>>> drake@xxxxxxxxxxxx; mike.looijmans@xxxxxxxx; joe@xxxxxxxxxxx; >>>>>> linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx >>>>>> 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