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: Maxime Ripard Message-Id: <20190321130133.zllt5pqbrhiecoch@flea> Date: Thu, 21 Mar 2019 14:01:33 +0100 To: Bin Liu , Paul Kocialkowski , Paul Kocialkowski , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Greg Kroah-Hartman , Chen-Yu Tsai List-ID: SGksCgpJJ20gcmV2aXZpbmcgdGhpcyB0aHJlYWQgYSBiaXQsIGJlY2F1c2UgSSBlbmNvdW50ZXJl ZCB0aGlzIGJ1ZyB0b2RheS4KCk9uIFRodSwgTWFyIDIxLCAyMDE5IGF0IDExOjAyOjEwQU0gKzAx MDAsIEJpbiBMaXUgd3JvdGU6Cj4gT24gU2F0LCBBcHIgMjEsIDIwMTggYXQgMTI6NTk6MjNQTSAr MDIwMCwgUGF1bCBLb2NpYWxrb3dza2kgd3JvdGU6Cj4gPiBIaSwKPiA+Cj4gPiBMZSB2ZW5kcmVk aSAyMCBhdnJpbCAyMDE4IMOgIDA5OjI1IC0wNTAwLCBCaW4gTGl1IGEgw6ljcml0IDoKPiA+ID4g T24gVGh1LCBNYXIgMjksIDIwMTggYXQgMDE6NTc6MjRQTSArMDIwMCwgUGF1bCBLb2NpYWxrb3dz a2kgd3JvdGU6Cj4gPiA+ID4gSGksCj4gPiA+ID4KPiA+ID4gPiBPbiBUaHUsIDIwMTgtMDMtMjkg YXQgMTE6MjMgKzAyMDAsIE1heGltZSBSaXBhcmQgd3JvdGU6Cj4gPiA+ID4gPiBPbiBXZWQsIE1h ciAyOCwgMjAxOCBhdCAxMTo1MjoxM1BNICswMjAwLCBQYXVsIEtvY2lhbGtvd3NraSB3cm90ZToK PiA+ID4gPiA+ID4gVGhpcyBhbGxvd3MgZHVhbC1yb2xlIHBvcnRzIHRvIGJlIHJlcG9ydGVkIGFz IGhhdmluZyBnYWRnZXQgbW9kZQo+ID4gPiA+ID4gPiBieQo+ID4gPiA+ID4gPiB0aGUKPiA+ID4g PiA+ID4gbXVzYl9oYXNfZ2FkZ2V0IGhlbHBlci4gVGhpcyBpcyByZXF1aXJlZCB0byBlbmFibGUg TVVTQiBhdCBhbGwKPiA+ID4gPiA+ID4gd2l0aAo+ID4gPiA+ID4gPiBNVVNCCj4gPiA+ID4gPiA+ IGdsdWUgbGF5ZXJzIHRoYXQgc2V0IHRoZSBwb3J0IG1vZGUgdG8gTVVTQl9QT1JUX01PREVfRFVB TF9ST0xFCj4gPiA+ID4gPiA+IGF0Cj4gPiA+ID4gPiA+IGluaXQuCj4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+IE1vc3Qgbm90YWJseSwgdGhpcyBhbGxvd3MgY2FsbGluZyBtdXNiX3N0YXJ0IHdoZW4g bmVlZGVkIGluIHRoZQo+ID4gPiA+ID4gPiB2aXJ0dWFsCj4gPiA+ID4gPiA+IE1VU0Igcm9vdCBI VUIsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY3VycmVudCBtb2RlIHNob3VsZCBiZQo+ID4g PiA+ID4gPiBnYWRnZXQKPiA+ID4gPiA+ID4gb3IgaG9zdC4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gVGhpcyBmaXhlcyBVU0IgT1RHIG9uIEFsbHdpbm5lciBkZXZpY2VzIHRoYXQgSSBjb3VsZCB0 ZXN0IGl0Cj4gPiA+ID4gPiA+IHdpdGgsCj4gPiA+ID4gPiA+IG1haW5seSBBMjAgZGV2aWNlcy4K PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUGF1bCBLb2NpYWxrb3dza2kg PGNvbnRhY3RAcGF1bGsuZnI+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gU3VyZWx5IHRoZXJlJ3MgbW9y ZSB0byBpdCB0aGFuIHRoYXQuIFRoZSBnYWRnZXQgbW9kZSBvZiBBMjAgYm9hcmRzCj4gPiA+ID4g PiBoYXZlIGJlZW4gd29ya2luZyBpbiB0aGUgcGFzdCwgaW5jbHVkaW5nIHdoZW4gY29tcGlsaW5n IHdpdGggbVVTQgo+ID4gPiA+ID4gc2V0dXAgYXMgZHVhbCByb2xlLgo+ID4gPiA+ID4KPiA+ID4g PiA+IElzIHRoaXMgYSByZWdyZXNzaW9uIHNpbmNlIGEgcGFydGljdWxhciBjb21taXQ/IE9yIGlz IHRoZXJlCj4gPiA+ID4gPiBhbm90aGVyLAo+ID4gPiA+ID4gZGVlcGVyIGlzc3VlIG92ZXJsb29r ZWQgaW4gdGhlIGNvbW1pdCBsb2c/Cj4gPiA+ID4KPiA+ID4gPiBUaGUgcm9vdCBvZiB0aGUgaXNz dWUgaGVyZSBpcyB0aGF0IG11c2Jfc3RhcnQgaXMgbm90IGNhbGxlZCBhdCBhbnkKPiA+ID4gPiBw b2ludAo+ID4gPiA+IHdpdGhvdXQgdGhpcyBwYXRjaC4gTXkgdW5kZXJzdGFuZGluZyBvZiB0aGUg ZmxvdyBpcyB0aGUgZm9sbG93aW5nOgo+ID4gPiA+IHdoZW4KPiA+ID4gPiB0aGUgUEhZIGRldGVj dHMgdGhhdCB0aGVyZSB3YXMgYSBWQlVTL0lEIGNoYW5nZSwgaXQgd2lsbCBub3RpZnkgaXRzCj4g PiA+ID4gbGlzdGVuZXJzIChtYWlubHkgdGhlIG11c2Igc3VueGkgZ2x1ZSBsYXllcikuIFRoaXMg d2lsbCB0aGVuCj4gPiA+ID4gc2NoZWR1bGUKPiA+ID4gPiB0aGUgZHJpdmVyJ3Mgd29yayAoc3Vu eGlfbXVzYl93b3JrKSwgd2hpY2ggZG9lcyBub3RoaW5nIHNpbmNlIHRoZQo+ID4gPiA+IFNVTlhJ X01VU0JfRkxfRU5BQkxFRCBiaXQgd2FzIG5ldmVyIHNldC4gVGhpcyBiaXQgaXMgb25seSBzZXQg YWZ0ZXIKPiA+ID4gPiBjYWxsaW5nIHN1bnhpX211c2JfZW5hYmxlLCB3aGljaCBpcyBjYWxsZWQg ZnJvbQo+ID4gPiA+IG11c2JfcGxhdGZvcm1fZW5hYmxlLAo+ID4gPiA+IHRoYXQgb3JpZ2luYXRl cyBmcm9tIG11c2Jfc3RhcnQuCj4gPiA+ID4KPiA+ID4gPiBDdXJyZW50bHkgSSBzZWUgdHdvIHBs YWNlcyB3aGVyZSBtdXNiX3N0YXJ0IGlzIGNhbGxlZDoKPiA+ID4gPiAqIG11c2JfdmlydGh1Ygo+ ID4gPiA+ICogbXVzYl9nYWRnZXQKPiA+ID4gPgo+ID4gPiA+IEluIHRoZSBsYXR0ZXIgY2FzZSwg aXQgaXMgaW4gdHVybiBjYWxsZWQgZnJvbSB1ZGNfc3RhcnQsIHdoaWNoCj4gPiA+ID4gc2hvdWxk Cj4gPiA+ID4gcHJvYmFibHkgKGNvcnJlY3QgbWUgaWYgSSdtIHdyb25nKSBoYXBwZW4gbGF0ZXIg aW4gdGhlIGNhbGwgY2hhaW4KPiA+ID4gPiB0aGFuCj4gPiA+ID4gSUQvVkJVUyBjaGFuZ2Ugbm90 aWZpY2F0aW9uIHRpbWUuCj4gPiA+Cj4gPiA+IEkgZG9uJ3QgdGhpbmsgaXQgaXMgY29ycmVjdCB0 aGF0IHVkY19zdGFydCgpIGlzIHRyaWdnZXJlZCBieSBJRC9WQlVTCj4gPiA+IGV2ZW50cywgYnV0 IEkgZG9uJ3QgaGF2ZSBhbiBBbGx3aW5uZXIgcGxhdGZvcm0gdG8gdmVyaWZ5IHRoZSBjYWxsZmxv dy4KPiA+Cj4gPiBZZXMgeW91J3JlIHJpZ2h0LCBJIGRpZG4ndCBtYWtlIG15c2VsZiB2ZXJ5IGNs ZWFyIGhlcmUuIEkgZGlkbid0Cj4gPiBpbnZlc3RpZ2F0ZSB0aGUgdWRjX3N0YXJ0IGNhbGwgcGF0 aCBtdWNoIHNpbmNlIGl0IHdhcyBhcHBhcmVudGx5IG5vdCB0aGUKPiA+IGN1bHByaXQuCj4gPgo+ ID4gPiBIYXZlIHlvdSB0cmllZCB0byBsb2FkIHdpdGggYSBnYWRnZXQgZHJpdmVyPyBXaGVuIGEg Z2FkZ2V0IGZ1bmN0aW9uIGlzCj4gPiA+IGJvdW5kIHRvIFVEQywgdWRjX3N0YXJ0KCkgaXMgdHJp Z2dlcmVkLCB3aGljaCBpbiB0dXJuIGNhbGxzCj4gPiA+IG11c2Jfc3RhcnQoKS4KPiA+Cj4gPiBJ dCBkb2VzIHdvcmsgdW5kZXIgdGhhdCBzY2VuYXJpbywgYWx0aG91Z2ggbXkgdXNlZCBjYXNlIGhl cmUgaXMgdXNpbmcKPiA+IG11c2Igd2l0aCBEVUFMX1JPTEUgYnV0IG5vIGdhZGdldCBkcml2ZXIg bG9hZGVkLiBUaGF0IGl0LCBJIHdhbnQgdGhlCj4gPiBtdXNiX3N0YXJ0IGNhbGwgdG8gb3JpZ2lu YXRlIGZyb20gdGhlIHZpcnR1YWwgaHViLCBub3QgZnJvbSB0aGUgZ2FkZ2V0Cj4gPiBzaWRlLgo+ ID4KPiA+ID4gPiBJbiB0aGUgZm9ybWVyIGNhc2UsIG11c2Jfc3RhcnQgaXMgY2FsbGVkIGluIHRo ZSByb290IGNvbnRyb2xsZXIgaHViCj4gPiA+ID4gY29udHJvbCwgd2hlbiBzZXR0aW5nIHRoZSBV U0JfUE9SVF9GRUFUX1BPV0VSIGZlYXR1cmUuIFRoaXMgbG9va3MKPiA+ID4gPiBwZXJmZWN0bHkg bGVnaXQgYW5kIElNTyB0aGlzIGlzIHdoZXJlIGl0IHNob3VsZCBiZSBpbml0aWFsbHkgY2FsbGlu Zwo+ID4gPiA+IG11c2Jfc3RhcnQgaW4gdGhlIGR1YWwgcm9sZSBjYXNlLiBUaGUga2VybmVsIGlz IGluZGVlZCBzZXR0aW5nIHRoZQo+ID4gPgo+ID4gPiBObyBhY3R1YWxseS4gQSBkdWFsLXJvbGUg cG9ydCBzaG91bGQgYmUgaW4gYl9pZGxlIHN0YXRlIGJ5IGRlZmF1bHQsIHNvCj4gPiA+IGxvZ2lj YWxseSBhbGwgYWN0aW9ucyBzaG91bGQgZ28gdG8gdGhlIGdhZGdldCBwYXRoIHVudGlsIHRoZSBw b3J0Cj4gPiA+IHN3aXRjaGVzIHRvIGhvc3QgbW9kZS4KPiA+Cj4gPiBJdCBtYWtlcyBzZW5zZSB0 aGF0IHRoZSBwb3J0IHNob3VsZCBiZSBpbiBiX2lkbGUgc3RhdGUgYnkgZGVmYXVsdCwgYnV0Cj4g PiBoZXJlIGl0IGZhaWxzIHRvIHN3aXRjaCB0byBob3N0IG1vZGUgd2hlbiB0aGUgSUQgcGluIGRl dGVjdHMgdGhhdCBpdAo+ID4gc2hvdWxkLiBPciBkb2VzIGJfaWRsZSBzdGF0ZSBlbnRhaWwgdGhh dCBhIGdhZGdldCBtdXN0IGJlIGxvYWRlZCAocGVyCj4gPiB0aGUgVVNCIHNwZWMpLCBhbmQgdGh1 cyBub3RoaW5nIHNob3VsZCAoZXZlcikgaGFwcGVuIHVudGlsIHRoYXQgaGFwcGVucz8KPiA+Cj4g PiBJIGZpbmQgaXQgcmVhbGx5IG9kZCB0byBuZWVkIGEgZ2FkZ2V0IGRldmljZSB0byB0cmlnZ2Vy IGhvc3QgbW9kZS4KPiA+IFRoaXMgcGF0Y2ggZG9lcyBmaXggdGhlIGlzc3VlLCBidXQgSSBhbSBw dXp6bGVkIGFzIHRvIHdoeSBpdCBpcyBuZWVkZWQKPiA+IGluIHRoZSBmaXJzdCBwbGFjZS4gVGhl IGNvbW1lbnQgYWJvdmUgaXQgbWVudGlvbnMgdGhhdCAiSW4gT1RHIG1vZGUgd2UKPiA+IGhhdmUg dG8gd2FpdCB1bnRpbCB3ZSBsb2FkZWQgYSBnYWRnZXQuIFdlIGRvbid0IHJlYWxseSBuZWVkIGEg Z2FkZ2V0IGlmCj4gPiB3ZSBvcGVyYXRlIGFzIGEgaG9zdCBidXQgd2Ugc2hvdWxkIG5vdCBzdGFy dCBhIHNlc3Npb24gYXMgYSBkZXZpY2UKPiA+IHdpdGhvdXQgYSBnYWRnZXQgb3IgZWxzZSB3ZSBl eHBsb2RlLiIsIHdoaWNoIGlzIGFwcGFyZW50bHkgY29tcGF0aWJsZQo+ID4gd2l0aCBteSB1c2Ug Y2FzZTogYSBnYWRnZXQgaXMgbm90IHJlYWxseSBuZWVkZWQgYW5kIEknbSBub3QgdHJ5aW5nIHRv Cj4gPiBzdGFydCBhIHNlc3Npb24gYXMgYSBkZXZpY2Ugd2l0aG91dCBhIGdhZGdldCBsb2FkZWQu Cj4gPgo+ID4gV2hhdCBkbyB5b3UgdGhpbms/Cj4KPiBPa2F5LCB0aGlzIGNhbWUgZG93biB0byBh biBhcmd1bWVudCB0aGF0IHdoZXRoZXIgd2Ugc2hvdWxkIHJlcXVpcmUKPiBsb2FkaW5nIGEgZ2Fk Z2V0IGRyaXZlciBvbiBhIGR1YWwtcm9sZSBwb3J0IHRvIHdvcmsgaW4gaG9zdCBtb2RlLAo+IHdo aWNoIGlzIGN1cnJlbnRseSByZXF1aXJlZCBvbiBtdXNiIHNpbmNlIGEgbG9uZyBsb25nIHRpbWUg YWdvLgo+Cj4gSSB1bmRlcnN0YW5kIHRoZSByZXF1aXJlbWVudCBpcyBraW5kYSB1bm5lY2Vzc2Fy eSwgYnV0IHNpbmNlIGl0IGFscmVhZHkKPiBleGlzdHMgb24gbXVzYiBzdGFjayBmb3IgYSBsb25n IHRpbWUsIEkgZG9uJ3QgcGxhbiB0byBjaGFuZ2UgaXQuIEJlY2F1c2UgSQo+IGNhbm5vdCB0aGlu ayBvZiBhIHVzZSBjYXNlIGluIHJlYWwgcHJvZHVjdHMgdGhhdCBkb2Vzbid0IGF1dG9tYXRpY2Fs bHkKPiBsb2FkIGEgZ2FkZ2V0IGZ1bmN0aW9uIG9uIHRoZSBkdWFsLXJvbGUgcG9ydC4KPgo+IElm IHlvdSBjYW4gZXhwbGFpbiBhIHVzZSBjYXNlIGluIHJlYWwgd29ybGQgKG5vdCBhIGVuZ2luZWVy aW5nIGxhYikgdGhhdAo+IHRoZSBnYWRnZXQgZHJpdmVyIHdpbGwgbm90IGJlIGxvYWRlZCBhdCBs aW51eCBib290aW5nIHVwLCBidXQgbGF0ZXIKPiBiYXNlZCBvbiB1c2VyJ3MgaW5wdXQsIEkgd2ls bCByZWNvbnNpZGVyIG15IGRlY2lzaW9uLiBUbyByZW1vdmUgdGhpcwo+IHJlcXVpcmVtZW50IGZy b20gbXVzYiBzdGFjaywgdGhlIHdvcmsgaXMgbW9yZSB0aGFuIHRoaXMgcGF0Y2guCgpJIGhhdmUg b25lIGZvciB5b3U6IHdlJ3JlIHdvcmtpbmcgb24gYSBkZXZpY2UgdGhhdCBib290cyBwcmV0dHkg ZmFzdCwKYW5kIHRoZXJlZm9yZSBhcmUgcHVzaGluZyBhcyBtdWNoIHRoaW5ncyBhcyB3ZSBjYW4g dG8gbW9kdWxlcy4gSXQKaW5jbHVkZXMgZ2FkZ2V0cywgdGhlIG11c2IgZHJpdmVyIGFuZCBnbHVl LCBldGMuIFRoYXQgZG9lc24ndCBzb3VuZAp3YXkgdmVyeSBkaWZmZXJlbnQgZnJvbSB3aGF0IGEg Z2VuZXJpYyBkaXN0cm8gd291bGQgZG8gYXMgd2VsbC4KCkF0IGJvb3QsIHRoZSB2YXJpb3VzIG1v ZHVsZXMgZm9yIHRoZSBoYXJkd2FyZSBhcmUgbG9hZGVkCmF1dG9tYXRpY2FsbHk6IHRoZSBtdXNi IGdsdWUsIHRoZSBtdXNiIGNvcmUsIG91ciBVU0IgUEhZLCBldGMuIFdlIGVuZAp1cCBpbiBhIHNp dHVhdGlvbiB3aGVyZSB0aGUgbXVzYiBkcml2ZXIgaXMgbG9hZGVkIGFuZCByZXBvcnRlZCB0byB3 b3JrCnByb3Blcmx5LiBUaGUgVVNCIGNhYmxlIHRvIHRoZSBPVEcgcG9ydCAoaW4gcGVyaXBoZXJh bCkgbWlnaHQgb3IgbWlnaHQKbm90IGJlIGNvbm5lY3RlZCwgaXQncyBraW5kIG9mIGlycmVsZXZh bnQuCgpUaGUgZ2FkZ2V0cywgaG93ZXZlciwgYXJlIG5vdCBsb2FkZWQgYXV0b21hdGljYWxseS4K Ck5vdyBjb21lcyBhIHVzZXIgdGhhdCB3YW50cyB0byB1c2UgbXVzYiBhcyBhIGhvc3QsIGFuZCBj b25uZWN0IGEKcHJvcGVyIFVTQiBhZGFwdGVyLCB0aGF0IHdpcmVzIHRoZSBJRCBwaW4gcHJvcGVy bHkuIEluIG91ciBjYXNlLCB0aGUKcGh5IGRldGVjdHMgaXQsIHJlcG9ydHMgdGhlIG1vZGUgY2hh bmdlLCBhbmQgLi4uLiBub3RoaW5nLgoKVGhhdCBkb2Vzbid0IHJlYWxseSBsb29rIGxpa2UgYW4g ZW5naW5lZXJpbmcgbGFiIHNldHVwIHRvIG1lLgoKTWF4aW1lCi0tLQpNYXhpbWUgUmlwYXJkLCBC b290bGluCkVtYmVkZGVkIExpbnV4IGFuZCBLZXJuZWwgZW5naW5lZXJpbmcKaHR0cHM6Ly9ib290 bGluLmNvbQo=