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: [v3] usb: warm-reset ports on hub resume, if requested From: Mathias Nyman Message-Id: Date: Fri, 1 Feb 2019 13:46:27 +0200 To: Alan Stern , Jan-Marek Glogowski Cc: linux-usb@vger.kernel.org, Greg Kroah-Hartman , Kai-Heng Feng , Nicolas Boichat , Nicolas Saenz Julienne , Jon Flatley , Oliver Neukum List-ID: T24gMzEuMDEuMjAxOSAyMzoxMSwgQWxhbiBTdGVybiB3cm90ZToKPiBPbiBUaHUsIDMxIEphbiAy MDE5LCBKYW4tTWFyZWsgR2xvZ293c2tpIHdyb3RlOgo+IAo+Pj4gUGVyaGFwcyB5b3UgZGlkbid0 IG5vdGljZSB0aGF0IGF0IHRoZSBlbmQsIGh1Yl9hY3RpdmF0ZSgpIGNhbGxzCj4+PiBraWNrX2h1 Yl93cSgpLiAgVGhhdCByb3V0aW5lIGNhbGxzCj4+PiB1c2JfYXV0b3BtX2dldF9pbnRlcmZhY2Vf bm9fcmVzdW1lKCksIHdoaWNoIHdpbGwgcHJldmVudCB0aGUgaHViIHRyaW0KPj4+IHN1c3BlbmRp bmcgdW50aWwgaHViX2V2ZW50KCkgY2FsbHMgdXNiX2F1dG9wbV9wdXRfaW50ZXJmYWNlKCkuCj4+ PiBUaGVyZWZvcmUgdG8gbWFrZSB0aGluZ3Mgd29yayBjb3JyZWN0bHksIGh1Yl9hY3RpdmF0ZSgp IGhhcyB0byBlbnN1cmUKPj4+IHRoYXQgdGhlIGh1Yi0+ZXZlbnRfYml0cyBhbmQgaHViLT5jaGFu Z2VfYml0cyBmaWVsZHMgYXJlIHNldCBjb3JyZWN0bHksCj4+PiBzbyB0aGF0IGh1Yl9ldmVudCgp IHdpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nIHdoZW4gaXQgcnVucyAoYmVmb3JlIHRoZQo+Pj4gaHVi IGlzIGFsbG93ZWQgdG8gZ28gYmFjayBpbnRvIHN1c3BlbmQpLgo+Pj4KPj4+IFRoZXJlZm9yZSBp ZiBhIHBvcnQgaXMgaW4gYSBmdW5ueSBzdGF0ZSwgaHViX2FjdGl2YXRlKCkgc2hvdWxkIGRldGVj dAo+Pj4gdGhpcyBhbmQgc2V0IG9uZSBvZiB0aGVzZSBiaXQgZmllbGRzIGFwcHJvcHJpYXRlbHku ICBUaGF0J3Mgb25lIHJlYXNvbgo+Pj4gd2h5IGl0IGNvbnRhaW5zIGFsbCB0aG9zZSB0ZXN0cyBm b3IgcG9ydHN0YXR1cyBhbmQgcG9ydGNoYW5nZS4gIElmIGEKPj4+IG1pc3NpbmcgdGVzdCBuZWVk cyB0byBiZSBhZGRlZCwgdGhhdCdzIHdoYXQgeW91IHNob3VsZCBkby4KPj4KPj4gVGhhdCB3b3Vs ZCBiZSBsaWtlIHRoZSB2MyBvZiBteSBwYXRjaCwgd2hpY2ggc3RhcnRlZCB0aGlzIHRocmVhZCBh bmQKPj4gZGV0ZWN0ZWQgYW5kIGhhbmRsZWQgdGhlIHdhcm0tcmVzZXQgcmVxdWVzdCBvZiB0aGUg cG9ydCBpbgo+PiBodWJfYWN0aXZhdGUoKSBvbiByZXN1bWUuIE1heWJlIHdlIGNhbiBzZXQgc29t ZSBvZiB0aGVzZSBiaXRzCj4+IGluc3RlYWQsIG9yIGl0cyBhbHJlYWR5IGhhbmRsZWQgYnkgdGhl IGh1Yl9wb3J0X3Jlc2V0KCkgY2FsbDsgaGF2ZSB0bwo+PiBjaGVjay4KPiAKPiBTdXBwb3NlIGlu c3RlYWQgb2YgbWFraW5nIGh1Yl9hY3RpdmF0ZSgpIGRvIHRoZSB3YXJtIHJlc2V0IGR1cmluZwo+ IHJlc3VtZSwgeW91IG1lcmVseSBoYXZlIGl0IHNldCB0aGUgcG9ydCdzIGJpdCBpbiBodWItPmV2 ZW50X2JpdHMuCj4gVGhlbiBodWJfZXZlbnQoKSB3b3VsZCBzZWUgdGhhdCBpdCBuZWVkZWQgdG8g Y2FsbCBwb3J0X2V2ZW50KCkgZm9yIHRoYXQKPiBwb3J0LiAgTmVhciB0aGUgZW5kIG9mIHBvcnRf ZXZlbnQoKSB0aGVyZSBpcyBjb2RlIHRoYXQgY2hlY2tzIHdoZXRoZXIgYQo+IHdhcm0gcmVzZXQg aXMgbmVlZGVkOyB3b3VsZCB0aGF0IGV4aXN0aW5nIGNvZGUgYmUgYWJsZSB0byBzb2x2ZSB5b3Vy Cj4gcHJvYmxlbT8KPiAKClNvdW5kcyBnb29kLgoKU28gaWYgd2UgY2FuJ3QgcmVseSBvbiBhIGh1 YiBzdGF0dXMgdXJiIHJldHVybmluZyBiZWZvcmUgaHViX2V2ZW50KCksIHdlCnNob3VsZCBtYWtl IHN1cmUgaHViLT5ldmVudF9iaXRzIGFyZSBzZXQgbWFudWFsbHkgaW4gaHViX2FjdGl2YXRlKCkg Zm9yIGFsbAp0aGUgc2FtZSBjYXNlcyBhcyBoY2QtPmRyaXZlci0+aHViX3N0YXR1c19kYXRhKCkg aW4gaGNkX2J1c19zdXNwZW5kKCkuCgpPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cCBpbiBhIGh1YiBz dXNwZW5kLXJlc3VtZSBsb29wLgoKPj4gSSBhbHNvIGluY2x1ZGVkIGEgcGF0Y2ggaW4gc29tZSBw cmV2aW91cyBtYWlsIGFmdGVyIE1hdGhpYXMgTnltYW4KPj4gY29tbWVudGVkIGFib3V0IHRoZSBO VUxMIHN0YXR1c191cmIsIHdoaWNoIGFkZGVkCj4+IHVzYl9oY2RfcG9sbF9yaF9zdGF0dXMgZGly ZWN0bHkgYWZ0ZXIgdGhlIHJvb3QgaHVicyB1c2JfcmVtb3RlX3dha2V1cAo+PiBjYWxsLgo+Pgo+ PiBBIGxvdCBvZiBzdHVmZiBpcyBkZWZlcnJlZCB2aWEgd29ya3F1ZXVlIG9yIHBvbGxlZC4gQXMg SSB1bmRlcnN0YW5kCj4+IGl0IC0gaW4gbXkgY2FzZSAtIHJlc3VtZSwgc3VzcGVuZCBhbmQgc3Rh dHVzIHJhY2UgYW5kIG1pc3MgZWFjaCBvdGhlcgo+PiBpbiBzb21lIGVuZGxlc3MgbG9vcC4KPiAK PiBUaGlzIGluZGljYXRlcyB0aGF0IHNvbWV0aGluZyBpcyBub3QgdXNpbmcgdGhlIGV4aXN0aW5n IHN5bmNocm9uaXphdGlvbgo+IG1lY2hhbmlzbXMgcHJvcGVybHkuICBGb3IgZXhhbXBsZSwgc29t ZXRoaW5nIHNlZXMgdGhhdCBhIHN0YXR1cyByZXF1ZXN0Cj4gaXMgbmVlZGVkIGJ1dCBkb2Vzbid0 IHN0b3JlIHRoYXQgaW5mb3JtYXRpb24gaW4gdGhlIHJpZ2h0IHdheSB0bwo+IHByZXZlbnQgYSBz dXNwZW5kIGZyb20gaGFwcGVuaW5nIGJlZm9yZSB0aGUgc3RhdHVzIGluZm9ybWF0aW9uIGhhcyBi ZWVuCj4gcmV0cmlldmVkLgoKVGhpcyBpcyB3aGF0IEkgYmVsaWV2ZSBpcyBnb2luZyBvbjoKCnN0 YXJ0aW5nIHBvaW50OiBodWIgaXMgc3VzcGVuZGVkLCB4aGNpIGdldHMgYSBwb3J0IGxpbmsgc3Rh dHVzIGNoYW5nZSBpbnRlcnJ1cHQsCnBvcnQgbGluayBpcyBpbiBpbnZhbGlkIHN0YXRlLCB4aGNp IGRyaXZlciByZXN1bWVzIHJvb3RodWIgYW5kIHN0YXJ0cyByb290aHViIHBvbGxpbmcKCmxvb3Ag c3RhcnQ6CnVzYl9oY2RfcG9sbF9yaF9zdGF0dXMoKQkvLyByb290aHViIHBvbGxpbmcKICBzZWUg YSBwb3J0IG5lZWRzIGF0dGVudGlvbiB3aGVuIGNhbGxpbmcgaGNkLT5kcml2ZXItPmh1Yl9zdGF0 dXNfZGF0YSgpCiAgbm8gaGNkLT5zdGF0dXNfdXJiIGF2YWlsYWJsZSBhcyBodWIgaXMgc3VzcGVu ZGVkLCBjYW4ndCBnaXZlYmFjayB1cmIKaHViX2FjdGl2YXRlKCkJCQkvLyBodWIgcmVzdW1lCiAg IG1hbnVhbGx5IGNoZWNrIHBvcnQgc3RhdHVzLCBub3RoaW5nIGZvdW5kLgogICB1c2Jfc3VibWl0 X3VyYihodWItPnVyYiwgR0ZQX05PSU8pCiAgIGtpY2tfaHViX3dxKGh1Yik7CgpodWJfZXZlbnQo KSAgCQkJLy8gc3RhcnRlZCBieSBraWNrX2h1Yl93cSgpIGluIGh1Yl9hY3RpdmF0ZSgpCiAgIGh1 Yi0+ZXZlbnRfYml0cyBhbmQgaHViLT5jaGFuZ2VfYml0cyBhcmUgemVybyBhcyBodWIgc3RhdHVz IHVyYiBkaWRuJ3QgcmV0dXJuLgogICBwdXRfaW50ZXJmYWNlKCkJCS8vIGFzIG5vIGFjdGl2aXR5 IGZvdW5kIG9uIGh1Yi4KCnN0YXJ0IHN1c3BlbmRpbmcgaHViLCByZW1vdmVzIGh1Yi0+c3RhdHVz X3VyYiBzb21ld2hlcmUgaW4gdGhlIHByb2Nlc3MKaGNkX2J1c19zdXNwZW5kKCkKICAgaWYgKGhj ZC0+ZHJpdmVyLT5odWJfc3RhdHVzX2RhdGEoKSkgLy8gdHJ1ZSwgcmFjZXMgd2l0aCBhIHJvb3Qt aHViIGV2ZW50CiAgICAgaGNkX2J1c19yZXN1bWUoKQoKdXNiX2hjZF9wb2xsX3JoX3N0YXR1cygp IGV4cGlyZXMgYWdhaW4gYXQgdGhpcyBwb2ludCwgZ290byBsb29wIHN0YXJ0CgpUbyBhdm9pZCB0 aGlzIGxvb3AgSSB0aG91Z2h0IHdlIGNvdWxkIGZvcmNlIHRoZSBodWIgc3RhdHVzIHVyYiB0byBj b21wbGV0ZSBhdCBzb21lIHBvaW50LApidXQgYXMgQWxhbiBjb21tZW50ZWQgaXQgbWlnaHQgYmUg YmV0dGVyIHRvIG1ha2Ugc3VyZSB0aGUgbWFudWFsIHBvcnQgc3RhdHVzCmNoZWNrcyBpbiBodWJf YWN0aXZhdGUoKSBjb3ZlcnMgYWxsIHRoZSBzYW1lIGNhc2VzIGFzIGhjZC0+ZHJpdmVyLT5odWJf c3RhdHVzX2RhdGEoKS4KCi1NYXRoaWFzCg==