From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: ADUXVKJwxMDjqqRiLHKVxgbuEBVwBpAPg/hdNMhKboYc3LjbJ7xxLs7o6y39iTQiuU2+Kt5lNb6Q ARC-Seal: i=1; a=rsa-sha256; t=1527172195; cv=none; d=google.com; s=arc-20160816; b=HRdsG+iSdqGBkHvzinqHMTe0zICGfqLoWE1GB82rSddsjc0TWAjD87DkGbtYLdc6e3 fPr4Fyh0RAVYxgcj+irMZ88BEu7tKUsh5oD7gwF3NrcPBSwCCP/L9Dm+MtVRwXwqgTEK CV5VpxrM8TETWl0hJQ9oSrWkbRfKfnA02DpdFlm0Ji0uhdS2l0ghb/selg6Kz3zPlaUJ al34/go6QbgZxrpCojK1JNFjmiMuiA5BFZFw7ZxMNgXNg7k+QhtkRUUeNhVwVLMc7trC VgrjmKG6S1oy4mArcxVEk5rS/UvLG6VBc0dHOLWIl+VoOopyQR2WSS5sL0aGMp+dTD9b cWKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:message-id:in-reply-to:subject:cc:to:from:date :arc-authentication-results; bh=cbuRQIUmgT6n+PQLJFxypK9qEkte/wPVUjr35ge5Mjo=; b=wKb7z/GRFGADRmiuFxGi87CccBLOIdL99R+llFO8TjeOvHW6vEr1a3jYRoWKz4QSa5 EvKpaNr/wd8kjeUlIunAIRZOU5nYHQxousWl7jBZKApTNUPKbYgokNACCuqnGrih9t+G mt3IgyFrsJcq3jMlscEQRpxTAaqoKM3dwjwXzMLFAEYvKf8fHpNUGlphRfvK8Eurqnhv S8aEtpH6yV2nLLJv8LxWkzrJQUopDf0m0nvoE1cXe7HX3xqghU+Piy7i5KTPZKnz5qRx 1ebsoyyzp+KKEuIrJLTMgL9gXSrACj+yIJc7YnuYE6B2Lu/33C/Esm865CQa3DspGrRe W7VQ== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 192.131.102.54 is neither permitted nor denied by best guess record for domain of stern+5b0af0d8@rowland.harvard.edu) smtp.mailfrom=stern+5b0af0d8@rowland.harvard.edu Authentication-Results: mx.google.com; spf=neutral (google.com: 192.131.102.54 is neither permitted nor denied by best guess record for domain of stern+5b0af0d8@rowland.harvard.edu) smtp.mailfrom=stern+5b0af0d8@rowland.harvard.edu Date: Thu, 24 May 2018 10:29:54 -0400 (EDT) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: Nicolas Boichat cc: Greg Kroah-Hartman , , Mathias Nyman , Felipe Balbi , Eugene Korenevsky , Peter Chen , Daniel Drake , Joe Perches , Johan Hovold , Richard Leitner , lkml , Guenter Roeck Subject: Re: [PATCH] usb: hub: Per-port setting to use old enumeration scheme In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1601219430844559036?= X-GMAIL-MSGID: =?utf-8?q?1601356112116072259?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: On Thu, 24 May 2018, Nicolas Boichat wrote: > On Thu, May 24, 2018 at 12:39 AM, Greg Kroah-Hartman > wrote: > > On Wed, May 23, 2018 at 10:03:55AM -0400, Alan Stern wrote: > >> On Wed, 23 May 2018, Nicolas Boichat wrote: > >> > >> > The "old" enumeration scheme is considerably faster (it takes > >> > ~294ms instead of ~439ms to get the descriptor). > >> > > >> > It is currently only possible to use the old scheme globally > >> > (/sys/module/usbcore/parameters/old_scheme_first), which is not > >> > desirable as the new scheme was introduced to increase compatibility > >> > with more devices. > >> > > >> > However, in our case, we care about time-to-active for a specific > >> > USB device (which we make the firmware for), on a specific port > >> > (that is pogo-pin based: not a standard USB port). This new > >> > sysfs option makes it possible to use the old scheme on a single > >> > port only. > >> > > >> > Signed-off-by: Nicolas Boichat > >> > --- > >> > > >> > There are other "quirks" that we could add to reduce further > >> > enumeration time (e.g. reduce USB debounce time, reduce TRSTRCY > >> > to 10ms instead of 50ms as used currently), but the logic is quite > >> > similar, so it'd be good to have this reviewed first. > >> > >> I'm not opposed to the idea in principle, although I don't like your > >> implementation because it breaks the original old_scheme_first > >> parameter. > > I don't think it breaks the original parameter? I mean, > /sys/module/usbcore/parameters/old_scheme_first is still a global > default, while bit 0 of /sys/bus/usb/devices/x/y/z/quirks becomes a > port-specific override. Oops, sorry, my mistake. My email client wrapped the last line of use_new_scheme(), and as a result I missed the fact that old_scheme_first was getting or'ed into the expression. > >> How do you arrange to set the new quirk before the device is > >> discovered? > > > > Yeah, this last question is what I had when looking at this. Or does it > > not matter at first boot and only matters for wake-up? > > It does not matter on boot, we have plenty of time to enumerate the > device. We use USB (auto-)suspend and remote wake, so no > re-enumeration there either. It only matters on unplug/replug where > the device needs to be re-enumerated. > > Somewhere in an init script, we would do this (we know in advance that > usb1 port2 is the bus/port where we have our pogo-pin USB interface, > so we can hard-code the path): > echo 1 > /sys/bus/usb/devices/usb1/1-0:1.0/usb1-port2/quirks > > We could try to add ACPI support (just like connect_type), but we > don't strictly need it for our application. Okay, that makes sense. So this change looks okay to me. Acked-by: Alan Stern Alan Stern From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: usb: hub: Per-port setting to use old enumeration scheme From: Alan Stern Message-Id: Date: Thu, 24 May 2018 10:29:54 -0400 (EDT) To: Nicolas Boichat Cc: Greg Kroah-Hartman , linux-usb@vger.kernel.org, Mathias Nyman , Felipe Balbi , Eugene Korenevsky , Peter Chen , Daniel Drake , Joe Perches , Johan Hovold , Richard Leitner , lkml , Guenter Roeck List-ID: T24gVGh1LCAyNCBNYXkgMjAxOCwgTmljb2xhcyBCb2ljaGF0IHdyb3RlOgoKPiBPbiBUaHUsIE1h eSAyNCwgMjAxOCBhdCAxMjozOSBBTSwgR3JlZyBLcm9haC1IYXJ0bWFuCj4gPGdyZWdraEBsaW51 eGZvdW5kYXRpb24ub3JnPiB3cm90ZToKPiA+IE9uIFdlZCwgTWF5IDIzLCAyMDE4IGF0IDEwOjAz OjU1QU0gLTA0MDAsIEFsYW4gU3Rlcm4gd3JvdGU6Cj4gPj4gT24gV2VkLCAyMyBNYXkgMjAxOCwg Tmljb2xhcyBCb2ljaGF0IHdyb3RlOgo+ID4+Cj4gPj4gPiBUaGUgIm9sZCIgZW51bWVyYXRpb24g c2NoZW1lIGlzIGNvbnNpZGVyYWJseSBmYXN0ZXIgKGl0IHRha2VzCj4gPj4gPiB+Mjk0bXMgaW5z dGVhZCBvZiB+NDM5bXMgdG8gZ2V0IHRoZSBkZXNjcmlwdG9yKS4KPiA+PiA+Cj4gPj4gPiBJdCBp cyBjdXJyZW50bHkgb25seSBwb3NzaWJsZSB0byB1c2UgdGhlIG9sZCBzY2hlbWUgZ2xvYmFsbHkK PiA+PiA+ICgvc3lzL21vZHVsZS91c2Jjb3JlL3BhcmFtZXRlcnMvb2xkX3NjaGVtZV9maXJzdCks IHdoaWNoIGlzIG5vdAo+ID4+ID4gZGVzaXJhYmxlIGFzIHRoZSBuZXcgc2NoZW1lIHdhcyBpbnRy b2R1Y2VkIHRvIGluY3JlYXNlIGNvbXBhdGliaWxpdHkKPiA+PiA+IHdpdGggbW9yZSBkZXZpY2Vz Lgo+ID4+ID4KPiA+PiA+IEhvd2V2ZXIsIGluIG91ciBjYXNlLCB3ZSBjYXJlIGFib3V0IHRpbWUt dG8tYWN0aXZlIGZvciBhIHNwZWNpZmljCj4gPj4gPiBVU0IgZGV2aWNlICh3aGljaCB3ZSBtYWtl IHRoZSBmaXJtd2FyZSBmb3IpLCBvbiBhIHNwZWNpZmljIHBvcnQKPiA+PiA+ICh0aGF0IGlzIHBv Z28tcGluIGJhc2VkOiBub3QgYSBzdGFuZGFyZCBVU0IgcG9ydCkuIFRoaXMgbmV3Cj4gPj4gPiBz eXNmcyBvcHRpb24gbWFrZXMgaXQgcG9zc2libGUgdG8gdXNlIHRoZSBvbGQgc2NoZW1lIG9uIGEg c2luZ2xlCj4gPj4gPiBwb3J0IG9ubHkuCj4gPj4gPgo+ID4+ID4gU2lnbmVkLW9mZi1ieTogTmlj b2xhcyBCb2ljaGF0IDxkcmlua2NhdEBjaHJvbWl1bS5vcmc+Cj4gPj4gPiAtLS0KPiA+PiA+Cj4g Pj4gPiBUaGVyZSBhcmUgb3RoZXIgInF1aXJrcyIgdGhhdCB3ZSBjb3VsZCBhZGQgdG8gcmVkdWNl IGZ1cnRoZXIKPiA+PiA+IGVudW1lcmF0aW9uIHRpbWUgKGUuZy4gcmVkdWNlIFVTQiBkZWJvdW5j ZSB0aW1lLCByZWR1Y2UgVFJTVFJDWQo+ID4+ID4gdG8gMTBtcyBpbnN0ZWFkIG9mIDUwbXMgYXMg dXNlZCBjdXJyZW50bHkpLCBidXQgdGhlIGxvZ2ljIGlzIHF1aXRlCj4gPj4gPiBzaW1pbGFyLCBz byBpdCdkIGJlIGdvb2QgdG8gaGF2ZSB0aGlzIHJldmlld2VkIGZpcnN0Lgo+ID4+Cj4gPj4gSSdt IG5vdCBvcHBvc2VkIHRvIHRoZSBpZGVhIGluIHByaW5jaXBsZSwgYWx0aG91Z2ggSSBkb24ndCBs aWtlIHlvdXIKPiA+PiBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlIGl0IGJyZWFrcyB0aGUgb3JpZ2lu YWwgb2xkX3NjaGVtZV9maXJzdAo+ID4+IHBhcmFtZXRlci4KPiAKPiBJIGRvbid0IHRoaW5rIGl0 IGJyZWFrcyB0aGUgb3JpZ2luYWwgcGFyYW1ldGVyPyBJIG1lYW4sCj4gL3N5cy9tb2R1bGUvdXNi Y29yZS9wYXJhbWV0ZXJzL29sZF9zY2hlbWVfZmlyc3QgaXMgc3RpbGwgYSBnbG9iYWwKPiBkZWZh dWx0LCB3aGlsZSBiaXQgMCBvZiAvc3lzL2J1cy91c2IvZGV2aWNlcy94L3kvei9xdWlya3MgYmVj b21lcyBhCj4gcG9ydC1zcGVjaWZpYyBvdmVycmlkZS4KCk9vcHMsIHNvcnJ5LCBteSBtaXN0YWtl LiAgTXkgZW1haWwgY2xpZW50IHdyYXBwZWQgdGhlIGxhc3QgbGluZSBvZgp1c2VfbmV3X3NjaGVt ZSgpLCBhbmQgYXMgYSByZXN1bHQgSSBtaXNzZWQgdGhlIGZhY3QgdGhhdApvbGRfc2NoZW1lX2Zp cnN0IHdhcyBnZXR0aW5nIG9yJ2VkIGludG8gdGhlIGV4cHJlc3Npb24uCgo+ID4+IEhvdyBkbyB5 b3UgYXJyYW5nZSB0byBzZXQgdGhlIG5ldyBxdWlyayBiZWZvcmUgdGhlIGRldmljZSBpcwo+ID4+ IGRpc2NvdmVyZWQ/Cj4gPgo+ID4gWWVhaCwgdGhpcyBsYXN0IHF1ZXN0aW9uIGlzIHdoYXQgSSBo YWQgd2hlbiBsb29raW5nIGF0IHRoaXMuICBPciBkb2VzIGl0Cj4gPiBub3QgbWF0dGVyIGF0IGZp cnN0IGJvb3QgYW5kIG9ubHkgbWF0dGVycyBmb3Igd2FrZS11cD8KPiAKPiBJdCBkb2VzIG5vdCBt YXR0ZXIgb24gYm9vdCwgd2UgaGF2ZSBwbGVudHkgb2YgdGltZSB0byBlbnVtZXJhdGUgdGhlCj4g ZGV2aWNlLiBXZSB1c2UgVVNCIChhdXRvLSlzdXNwZW5kIGFuZCByZW1vdGUgd2FrZSwgc28gbm8K PiByZS1lbnVtZXJhdGlvbiB0aGVyZSBlaXRoZXIuIEl0IG9ubHkgbWF0dGVycyBvbiB1bnBsdWcv cmVwbHVnIHdoZXJlCj4gdGhlIGRldmljZSBuZWVkcyB0byBiZSByZS1lbnVtZXJhdGVkLgo+IAo+ IFNvbWV3aGVyZSBpbiBhbiBpbml0IHNjcmlwdCwgd2Ugd291bGQgZG8gdGhpcyAod2Uga25vdyBp biBhZHZhbmNlIHRoYXQKPiB1c2IxIHBvcnQyIGlzIHRoZSBidXMvcG9ydCB3aGVyZSB3ZSBoYXZl IG91ciBwb2dvLXBpbiBVU0IgaW50ZXJmYWNlLAo+IHNvIHdlIGNhbiBoYXJkLWNvZGUgdGhlIHBh dGgpOgo+IGVjaG8gMSA+IC9zeXMvYnVzL3VzYi9kZXZpY2VzL3VzYjEvMS0wOjEuMC91c2IxLXBv cnQyL3F1aXJrcwo+IAo+IFdlIGNvdWxkIHRyeSB0byBhZGQgQUNQSSBzdXBwb3J0IChqdXN0IGxp a2UgY29ubmVjdF90eXBlKSwgYnV0IHdlCj4gZG9uJ3Qgc3RyaWN0bHkgbmVlZCBpdCBmb3Igb3Vy IGFwcGxpY2F0aW9uLgoKT2theSwgdGhhdCBtYWtlcyBzZW5zZS4gIFNvIHRoaXMgY2hhbmdlIGxv b2tzIG9rYXkgdG8gbWUuCgpBY2tlZC1ieTogQWxhbiBTdGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2 YXJkLmVkdT4KCkFsYW4gU3Rlcm4KLS0tClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBz ZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC11c2IiIGluCnRoZSBib2R5IG9mIGEgbWVz c2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnCk1vcmUgbWFqb3Jkb21vIGluZm8gYXQg IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAo=