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: musb: Support gadget mode when the port is set to dual role From: Greg Kroah-Hartman Message-Id: <20190321164138.GB11121@kroah.com> Date: Thu, 21 Mar 2019 17:41:38 +0100 To: Maxime Ripard Cc: Bin Liu , Paul Kocialkowski , Paul Kocialkowski , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Chen-Yu Tsai List-ID: T24gVGh1LCBNYXIgMjEsIDIwMTkgYXQgMDI6MDE6MzNQTSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3 cm90ZToKPiBIaSwKPiAKPiBJJ20gcmV2aXZpbmcgdGhpcyB0aHJlYWQgYSBiaXQsIGJlY2F1c2Ug SSBlbmNvdW50ZXJlZCB0aGlzIGJ1ZyB0b2RheS4KPiAKPiBPbiBUaHUsIE1hciAyMSwgMjAxOSBh dCAxMTowMjoxMEFNICswMTAwLCBCaW4gTGl1IHdyb3RlOgo+ID4gT24gU2F0LCBBcHIgMjEsIDIw MTggYXQgMTI6NTk6MjNQTSArMDIwMCwgUGF1bCBLb2NpYWxrb3dza2kgd3JvdGU6Cj4gPiA+IEhp LAo+ID4gPgo+ID4gPiBMZSB2ZW5kcmVkaSAyMCBhdnJpbCAyMDE4IMOgIDA5OjI1IC0wNTAwLCBC aW4gTGl1IGEgw6ljcml0IDoKPiA+ID4gPiBPbiBUaHUsIE1hciAyOSwgMjAxOCBhdCAwMTo1Nzoy NFBNICswMjAwLCBQYXVsIEtvY2lhbGtvd3NraSB3cm90ZToKPiA+ID4gPiA+IEhpLAo+ID4gPiA+ ID4KPiA+ID4gPiA+IE9uIFRodSwgMjAxOC0wMy0yOSBhdCAxMToyMyArMDIwMCwgTWF4aW1lIFJp cGFyZCB3cm90ZToKPiA+ID4gPiA+ID4gT24gV2VkLCBNYXIgMjgsIDIwMTggYXQgMTE6NTI6MTNQ TSArMDIwMCwgUGF1bCBLb2NpYWxrb3dza2kgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gVGhpcyBhbGxv d3MgZHVhbC1yb2xlIHBvcnRzIHRvIGJlIHJlcG9ydGVkIGFzIGhhdmluZyBnYWRnZXQgbW9kZQo+ ID4gPiA+ID4gPiA+IGJ5Cj4gPiA+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+ID4gbXVzYl9oYXNf Z2FkZ2V0IGhlbHBlci4gVGhpcyBpcyByZXF1aXJlZCB0byBlbmFibGUgTVVTQiBhdCBhbGwKPiA+ ID4gPiA+ID4gPiB3aXRoCj4gPiA+ID4gPiA+ID4gTVVTQgo+ID4gPiA+ID4gPiA+IGdsdWUgbGF5 ZXJzIHRoYXQgc2V0IHRoZSBwb3J0IG1vZGUgdG8gTVVTQl9QT1JUX01PREVfRFVBTF9ST0xFCj4g PiA+ID4gPiA+ID4gYXQKPiA+ID4gPiA+ID4gPiBpbml0Lgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gTW9zdCBub3RhYmx5LCB0aGlzIGFsbG93cyBjYWxsaW5nIG11c2Jfc3RhcnQgd2hlbiBu ZWVkZWQgaW4gdGhlCj4gPiA+ID4gPiA+ID4gdmlydHVhbAo+ID4gPiA+ID4gPiA+IE1VU0Igcm9v dCBIVUIsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY3VycmVudCBtb2RlIHNob3VsZCBiZQo+ ID4gPiA+ID4gPiA+IGdhZGdldAo+ID4gPiA+ID4gPiA+IG9yIGhvc3QuCj4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiBUaGlzIGZpeGVzIFVTQiBPVEcgb24gQWxsd2lubmVyIGRldmljZXMgdGhh dCBJIGNvdWxkIHRlc3QgaXQKPiA+ID4gPiA+ID4gPiB3aXRoLAo+ID4gPiA+ID4gPiA+IG1haW5s eSBBMjAgZGV2aWNlcy4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6 IFBhdWwgS29jaWFsa293c2tpIDxjb250YWN0QHBhdWxrLmZyPgo+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiBTdXJlbHkgdGhlcmUncyBtb3JlIHRvIGl0IHRoYW4gdGhhdC4gVGhlIGdhZGdldCBtb2Rl IG9mIEEyMCBib2FyZHMKPiA+ID4gPiA+ID4gaGF2ZSBiZWVuIHdvcmtpbmcgaW4gdGhlIHBhc3Qs IGluY2x1ZGluZyB3aGVuIGNvbXBpbGluZyB3aXRoIG1VU0IKPiA+ID4gPiA+ID4gc2V0dXAgYXMg ZHVhbCByb2xlLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBJcyB0aGlzIGEgcmVncmVzc2lvbiBz aW5jZSBhIHBhcnRpY3VsYXIgY29tbWl0PyBPciBpcyB0aGVyZQo+ID4gPiA+ID4gPiBhbm90aGVy LAo+ID4gPiA+ID4gPiBkZWVwZXIgaXNzdWUgb3Zlcmxvb2tlZCBpbiB0aGUgY29tbWl0IGxvZz8K PiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGUgcm9vdCBvZiB0aGUgaXNzdWUgaGVyZSBpcyB0aGF0IG11 c2Jfc3RhcnQgaXMgbm90IGNhbGxlZCBhdCBhbnkKPiA+ID4gPiA+IHBvaW50Cj4gPiA+ID4gPiB3 aXRob3V0IHRoaXMgcGF0Y2guIE15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIGZsb3cgaXMgdGhlIGZv bGxvd2luZzoKPiA+ID4gPiA+IHdoZW4KPiA+ID4gPiA+IHRoZSBQSFkgZGV0ZWN0cyB0aGF0IHRo ZXJlIHdhcyBhIFZCVVMvSUQgY2hhbmdlLCBpdCB3aWxsIG5vdGlmeSBpdHMKPiA+ID4gPiA+IGxp c3RlbmVycyAobWFpbmx5IHRoZSBtdXNiIHN1bnhpIGdsdWUgbGF5ZXIpLiBUaGlzIHdpbGwgdGhl bgo+ID4gPiA+ID4gc2NoZWR1bGUKPiA+ID4gPiA+IHRoZSBkcml2ZXIncyB3b3JrIChzdW54aV9t dXNiX3dvcmspLCB3aGljaCBkb2VzIG5vdGhpbmcgc2luY2UgdGhlCj4gPiA+ID4gPiBTVU5YSV9N VVNCX0ZMX0VOQUJMRUQgYml0IHdhcyBuZXZlciBzZXQuIFRoaXMgYml0IGlzIG9ubHkgc2V0IGFm dGVyCj4gPiA+ID4gPiBjYWxsaW5nIHN1bnhpX211c2JfZW5hYmxlLCB3aGljaCBpcyBjYWxsZWQg ZnJvbQo+ID4gPiA+ID4gbXVzYl9wbGF0Zm9ybV9lbmFibGUsCj4gPiA+ID4gPiB0aGF0IG9yaWdp bmF0ZXMgZnJvbSBtdXNiX3N0YXJ0Lgo+ID4gPiA+ID4KPiA+ID4gPiA+IEN1cnJlbnRseSBJIHNl ZSB0d28gcGxhY2VzIHdoZXJlIG11c2Jfc3RhcnQgaXMgY2FsbGVkOgo+ID4gPiA+ID4gKiBtdXNi X3ZpcnRodWIKPiA+ID4gPiA+ICogbXVzYl9nYWRnZXQKPiA+ID4gPiA+Cj4gPiA+ID4gPiBJbiB0 aGUgbGF0dGVyIGNhc2UsIGl0IGlzIGluIHR1cm4gY2FsbGVkIGZyb20gdWRjX3N0YXJ0LCB3aGlj aAo+ID4gPiA+ID4gc2hvdWxkCj4gPiA+ID4gPiBwcm9iYWJseSAoY29ycmVjdCBtZSBpZiBJJ20g d3JvbmcpIGhhcHBlbiBsYXRlciBpbiB0aGUgY2FsbCBjaGFpbgo+ID4gPiA+ID4gdGhhbgo+ID4g PiA+ID4gSUQvVkJVUyBjaGFuZ2Ugbm90aWZpY2F0aW9uIHRpbWUuCj4gPiA+ID4KPiA+ID4gPiBJ IGRvbid0IHRoaW5rIGl0IGlzIGNvcnJlY3QgdGhhdCB1ZGNfc3RhcnQoKSBpcyB0cmlnZ2VyZWQg YnkgSUQvVkJVUwo+ID4gPiA+IGV2ZW50cywgYnV0IEkgZG9uJ3QgaGF2ZSBhbiBBbGx3aW5uZXIg cGxhdGZvcm0gdG8gdmVyaWZ5IHRoZSBjYWxsZmxvdy4KPiA+ID4KPiA+ID4gWWVzIHlvdSdyZSBy aWdodCwgSSBkaWRuJ3QgbWFrZSBteXNlbGYgdmVyeSBjbGVhciBoZXJlLiBJIGRpZG4ndAo+ID4g PiBpbnZlc3RpZ2F0ZSB0aGUgdWRjX3N0YXJ0IGNhbGwgcGF0aCBtdWNoIHNpbmNlIGl0IHdhcyBh cHBhcmVudGx5IG5vdCB0aGUKPiA+ID4gY3VscHJpdC4KPiA+ID4KPiA+ID4gPiBIYXZlIHlvdSB0 cmllZCB0byBsb2FkIHdpdGggYSBnYWRnZXQgZHJpdmVyPyBXaGVuIGEgZ2FkZ2V0IGZ1bmN0aW9u IGlzCj4gPiA+ID4gYm91bmQgdG8gVURDLCB1ZGNfc3RhcnQoKSBpcyB0cmlnZ2VyZWQsIHdoaWNo IGluIHR1cm4gY2FsbHMKPiA+ID4gPiBtdXNiX3N0YXJ0KCkuCj4gPiA+Cj4gPiA+IEl0IGRvZXMg d29yayB1bmRlciB0aGF0IHNjZW5hcmlvLCBhbHRob3VnaCBteSB1c2VkIGNhc2UgaGVyZSBpcyB1 c2luZwo+ID4gPiBtdXNiIHdpdGggRFVBTF9ST0xFIGJ1dCBubyBnYWRnZXQgZHJpdmVyIGxvYWRl ZC4gVGhhdCBpdCwgSSB3YW50IHRoZQo+ID4gPiBtdXNiX3N0YXJ0IGNhbGwgdG8gb3JpZ2luYXRl IGZyb20gdGhlIHZpcnR1YWwgaHViLCBub3QgZnJvbSB0aGUgZ2FkZ2V0Cj4gPiA+IHNpZGUuCj4g PiA+Cj4gPiA+ID4gPiBJbiB0aGUgZm9ybWVyIGNhc2UsIG11c2Jfc3RhcnQgaXMgY2FsbGVkIGlu IHRoZSByb290IGNvbnRyb2xsZXIgaHViCj4gPiA+ID4gPiBjb250cm9sLCB3aGVuIHNldHRpbmcg dGhlIFVTQl9QT1JUX0ZFQVRfUE9XRVIgZmVhdHVyZS4gVGhpcyBsb29rcwo+ID4gPiA+ID4gcGVy ZmVjdGx5IGxlZ2l0IGFuZCBJTU8gdGhpcyBpcyB3aGVyZSBpdCBzaG91bGQgYmUgaW5pdGlhbGx5 IGNhbGxpbmcKPiA+ID4gPiA+IG11c2Jfc3RhcnQgaW4gdGhlIGR1YWwgcm9sZSBjYXNlLiBUaGUg a2VybmVsIGlzIGluZGVlZCBzZXR0aW5nIHRoZQo+ID4gPiA+Cj4gPiA+ID4gTm8gYWN0dWFsbHku IEEgZHVhbC1yb2xlIHBvcnQgc2hvdWxkIGJlIGluIGJfaWRsZSBzdGF0ZSBieSBkZWZhdWx0LCBz bwo+ID4gPiA+IGxvZ2ljYWxseSBhbGwgYWN0aW9ucyBzaG91bGQgZ28gdG8gdGhlIGdhZGdldCBw YXRoIHVudGlsIHRoZSBwb3J0Cj4gPiA+ID4gc3dpdGNoZXMgdG8gaG9zdCBtb2RlLgo+ID4gPgo+ ID4gPiBJdCBtYWtlcyBzZW5zZSB0aGF0IHRoZSBwb3J0IHNob3VsZCBiZSBpbiBiX2lkbGUgc3Rh dGUgYnkgZGVmYXVsdCwgYnV0Cj4gPiA+IGhlcmUgaXQgZmFpbHMgdG8gc3dpdGNoIHRvIGhvc3Qg bW9kZSB3aGVuIHRoZSBJRCBwaW4gZGV0ZWN0cyB0aGF0IGl0Cj4gPiA+IHNob3VsZC4gT3IgZG9l cyBiX2lkbGUgc3RhdGUgZW50YWlsIHRoYXQgYSBnYWRnZXQgbXVzdCBiZSBsb2FkZWQgKHBlcgo+ ID4gPiB0aGUgVVNCIHNwZWMpLCBhbmQgdGh1cyBub3RoaW5nIHNob3VsZCAoZXZlcikgaGFwcGVu IHVudGlsIHRoYXQgaGFwcGVucz8KPiA+ID4KPiA+ID4gSSBmaW5kIGl0IHJlYWxseSBvZGQgdG8g bmVlZCBhIGdhZGdldCBkZXZpY2UgdG8gdHJpZ2dlciBob3N0IG1vZGUuCj4gPiA+IFRoaXMgcGF0 Y2ggZG9lcyBmaXggdGhlIGlzc3VlLCBidXQgSSBhbSBwdXp6bGVkIGFzIHRvIHdoeSBpdCBpcyBu ZWVkZWQKPiA+ID4gaW4gdGhlIGZpcnN0IHBsYWNlLiBUaGUgY29tbWVudCBhYm92ZSBpdCBtZW50 aW9ucyB0aGF0ICJJbiBPVEcgbW9kZSB3ZQo+ID4gPiBoYXZlIHRvIHdhaXQgdW50aWwgd2UgbG9h ZGVkIGEgZ2FkZ2V0LiBXZSBkb24ndCByZWFsbHkgbmVlZCBhIGdhZGdldCBpZgo+ID4gPiB3ZSBv cGVyYXRlIGFzIGEgaG9zdCBidXQgd2Ugc2hvdWxkIG5vdCBzdGFydCBhIHNlc3Npb24gYXMgYSBk ZXZpY2UKPiA+ID4gd2l0aG91dCBhIGdhZGdldCBvciBlbHNlIHdlIGV4cGxvZGUuIiwgd2hpY2gg aXMgYXBwYXJlbnRseSBjb21wYXRpYmxlCj4gPiA+IHdpdGggbXkgdXNlIGNhc2U6IGEgZ2FkZ2V0 IGlzIG5vdCByZWFsbHkgbmVlZGVkIGFuZCBJJ20gbm90IHRyeWluZyB0bwo+ID4gPiBzdGFydCBh IHNlc3Npb24gYXMgYSBkZXZpY2Ugd2l0aG91dCBhIGdhZGdldCBsb2FkZWQuCj4gPiA+Cj4gPiA+ IFdoYXQgZG8geW91IHRoaW5rPwo+ID4KPiA+IE9rYXksIHRoaXMgY2FtZSBkb3duIHRvIGFuIGFy Z3VtZW50IHRoYXQgd2hldGhlciB3ZSBzaG91bGQgcmVxdWlyZQo+ID4gbG9hZGluZyBhIGdhZGdl dCBkcml2ZXIgb24gYSBkdWFsLXJvbGUgcG9ydCB0byB3b3JrIGluIGhvc3QgbW9kZSwKPiA+IHdo aWNoIGlzIGN1cnJlbnRseSByZXF1aXJlZCBvbiBtdXNiIHNpbmNlIGEgbG9uZyBsb25nIHRpbWUg YWdvLgo+ID4KPiA+IEkgdW5kZXJzdGFuZCB0aGUgcmVxdWlyZW1lbnQgaXMga2luZGEgdW5uZWNl c3NhcnksIGJ1dCBzaW5jZSBpdCBhbHJlYWR5Cj4gPiBleGlzdHMgb24gbXVzYiBzdGFjayBmb3Ig YSBsb25nIHRpbWUsIEkgZG9uJ3QgcGxhbiB0byBjaGFuZ2UgaXQuIEJlY2F1c2UgSQo+ID4gY2Fu bm90IHRoaW5rIG9mIGEgdXNlIGNhc2UgaW4gcmVhbCBwcm9kdWN0cyB0aGF0IGRvZXNuJ3QgYXV0 b21hdGljYWxseQo+ID4gbG9hZCBhIGdhZGdldCBmdW5jdGlvbiBvbiB0aGUgZHVhbC1yb2xlIHBv cnQuCj4gPgo+ID4gSWYgeW91IGNhbiBleHBsYWluIGEgdXNlIGNhc2UgaW4gcmVhbCB3b3JsZCAo bm90IGEgZW5naW5lZXJpbmcgbGFiKSB0aGF0Cj4gPiB0aGUgZ2FkZ2V0IGRyaXZlciB3aWxsIG5v dCBiZSBsb2FkZWQgYXQgbGludXggYm9vdGluZyB1cCwgYnV0IGxhdGVyCj4gPiBiYXNlZCBvbiB1 c2VyJ3MgaW5wdXQsIEkgd2lsbCByZWNvbnNpZGVyIG15IGRlY2lzaW9uLiBUbyByZW1vdmUgdGhp cwo+ID4gcmVxdWlyZW1lbnQgZnJvbSBtdXNiIHN0YWNrLCB0aGUgd29yayBpcyBtb3JlIHRoYW4g dGhpcyBwYXRjaC4KPiAKPiBJIGhhdmUgb25lIGZvciB5b3U6IHdlJ3JlIHdvcmtpbmcgb24gYSBk ZXZpY2UgdGhhdCBib290cyBwcmV0dHkgZmFzdCwKPiBhbmQgdGhlcmVmb3JlIGFyZSBwdXNoaW5n IGFzIG11Y2ggdGhpbmdzIGFzIHdlIGNhbiB0byBtb2R1bGVzLiBJdAo+IGluY2x1ZGVzIGdhZGdl dHMsIHRoZSBtdXNiIGRyaXZlciBhbmQgZ2x1ZSwgZXRjLiBUaGF0IGRvZXNuJ3Qgc291bmQKPiB3 YXkgdmVyeSBkaWZmZXJlbnQgZnJvbSB3aGF0IGEgZ2VuZXJpYyBkaXN0cm8gd291bGQgZG8gYXMg d2VsbC4KPiAKPiBBdCBib290LCB0aGUgdmFyaW91cyBtb2R1bGVzIGZvciB0aGUgaGFyZHdhcmUg YXJlIGxvYWRlZAo+IGF1dG9tYXRpY2FsbHk6IHRoZSBtdXNiIGdsdWUsIHRoZSBtdXNiIGNvcmUs IG91ciBVU0IgUEhZLCBldGMuIFdlIGVuZAo+IHVwIGluIGEgc2l0dWF0aW9uIHdoZXJlIHRoZSBt dXNiIGRyaXZlciBpcyBsb2FkZWQgYW5kIHJlcG9ydGVkIHRvIHdvcmsKPiBwcm9wZXJseS4gVGhl IFVTQiBjYWJsZSB0byB0aGUgT1RHIHBvcnQgKGluIHBlcmlwaGVyYWwpIG1pZ2h0IG9yIG1pZ2h0 Cj4gbm90IGJlIGNvbm5lY3RlZCwgaXQncyBraW5kIG9mIGlycmVsZXZhbnQuCj4gCj4gVGhlIGdh ZGdldHMsIGhvd2V2ZXIsIGFyZSBub3QgbG9hZGVkIGF1dG9tYXRpY2FsbHkuCj4gCj4gTm93IGNv bWVzIGEgdXNlciB0aGF0IHdhbnRzIHRvIHVzZSBtdXNiIGFzIGEgaG9zdCwgYW5kIGNvbm5lY3Qg YQo+IHByb3BlciBVU0IgYWRhcHRlciwgdGhhdCB3aXJlcyB0aGUgSUQgcGluIHByb3Blcmx5LiBJ biBvdXIgY2FzZSwgdGhlCj4gcGh5IGRldGVjdHMgaXQsIHJlcG9ydHMgdGhlIG1vZGUgY2hhbmdl LCBhbmQgLi4uLiBub3RoaW5nLgo+IAo+IFRoYXQgZG9lc24ndCByZWFsbHkgbG9vayBsaWtlIGFu IGVuZ2luZWVyaW5nIGxhYiBzZXR1cCB0byBtZS4KCkkgYWdyZWUsIHRoYXQgc291bmRzIGxpa2Ug YSB2YWxpZCBzZXR1cC4KCkFsc28gcmVhbGl6ZSB0aGF0IEFuZHJvaWQgaXMgcHVzaGluZyB0byBo YXZlIGFsbCBkcml2ZXJzIGFzIG1vZHVsZXMsIHNvCnlvdSB3aWxsIHN0YXJ0IHRvIHNlZSBhIHdo b2xlIGxvdCBtb3JlIGRldmljZXMgb3V0IHRoZXJlIGJlIG1vZHVsYXIKaW5zdGVhZCBvZiBzdGF0 aWNhbGx5IGJ1aWx0IGtlcm5lbHMuICBTbyBpc3N1ZXMgbGlrZSB0aGlzIGFyZSBnb29kIHRvCnJl c29sdmUgOikKCnRoYW5rcywKCmdyZWcgay1oCg==