Hi Roger: >-----Original Message----- >From: Roger Quadros [mailto:rogerq@xxxxxx] >Sent: Thursday, August 16, 2018 7:14 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 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. > Okay, make sense, thank you for the explanation. >-- >cheers, >-roger > >Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. >Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki