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: Bin Liu Message-Id: <20180501122533.GD21238@uda0271908> Date: Tue, 1 May 2018 07:25:33 -0500 To: Paul Kocialkowski Cc: Paul Kocialkowski , Maxime Ripard , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Greg Kroah-Hartman , Chen-Yu Tsai List-ID: T24gTW9uLCBBcHIgMzAsIDIwMTggYXQgMTE6MDg6NDJQTSArMDIwMCwgUGF1bCBLb2NpYWxrb3dz a2kgd3JvdGU6Cj4gSGksCj4gCj4gTGUgc2FtZWRpIDIxIGF2cmlsIDIwMTggw6AgMDk6MzQgLTA1 MDAsIEJpbiBMaXUgYSDDqWNyaXQgOgo+ID4gT2theSwgdGhpcyBjYW1lIGRvd24gdG8gYW4gYXJn dW1lbnQgdGhhdCB3aGV0aGVyIHdlIHNob3VsZCByZXF1aXJlCj4gPiBsb2FkaW5nIGEgZ2FkZ2V0 IGRyaXZlciBvbiBhIGR1YWwtcm9sZSBwb3J0IHRvIHdvcmsgaW4gaG9zdCBtb2RlLAo+ID4gd2hp Y2ggaXMgY3VycmVudGx5IHJlcXVpcmVkIG9uIG11c2Igc2luY2UgYSBsb25nIGxvbmcgdGltZSBh Z28uCj4gPiAKPiA+IEkgdW5kZXJzdGFuZCB0aGUgcmVxdWlyZW1lbnQgaXMga2luZGEgdW5uZWNl c3NhcnksIGJ1dCBzaW5jZSBpdAo+ID4gYWxyZWFkeQo+ID4gZXhpc3RzIG9uIG11c2Igc3RhY2sg Zm9yIGEgbG9uZyB0aW1lLCBJIGRvbid0IHBsYW4gdG8gY2hhbmdlIGl0Lgo+ID4gQmVjYXVzZSBJ Cj4gPiBjYW5ub3QgdGhpbmsgb2YgYSB1c2UgY2FzZSBpbiByZWFsIHByb2R1Y3RzIHRoYXQgZG9l c24ndCBhdXRvbWF0aWNhbGx5Cj4gPiBsb2FkIGEgZ2FkZ2V0IGZ1bmN0aW9uIG9uIHRoZSBkdWFs LXJvbGUgcG9ydC4KPiA+IAo+ID4gSWYgeW91IGNhbiBleHBsYWluIGEgdXNlIGNhc2UgaW4gcmVh bCB3b3JsZCAobm90IGEgZW5naW5lZXJpbmcgbGFiKQo+ID4gdGhhdCB0aGUgZ2FkZ2V0IGRyaXZl ciB3aWxsIG5vdCBiZSBsb2FkZWQgYXQgbGludXggYm9vdGluZyB1cCwgYnV0Cj4gPiBsYXRlciBi YXNlZCBvbiB1c2VyJ3MgaW5wdXQsIEkgd2lsbCByZWNvbnNpZGVyIG15IGRlY2lzaW9uLiBUbyBy ZW1vdmUKPiA+IHRoaXMgcmVxdWlyZW1lbnQgZnJvbSBtdXNiIHN0YWNrLCB0aGUgd29yayBpcyBt b3JlIHRoYW4gdGhpcyBwYXRjaC4KPiAKPiBNeSB1c2UgY2FzZSBoZXJlIGlzIHRvIHN1cHBvcnQg Y29tbW9uIEdOVS9MaW51eC1iYXNlZCBkaXN0cmlidXRpb25zLCBub3QKPiB1c2UtY2FzZS1zcGVj aWZpYyB2YXJpZXRpZXMgb2YgR05VL0xpbnV4LWJhc2VkIHJvb3Rmcy4gU28gbXkgcG9pbnQgaGVy ZQo+IHdvdWxkIGJlIHRoYXQgbW9zdCBkaXN0cm9zIHdpbGwgKGFuZCBwcm9iYWJseSBzaG91bGQp IHNoaXAgZ19ldGhlciBhcyBhCj4gbW9kdWxlIGJ1dCB3aXRob3V0IGFueSBwYXJ0aWN1bGFyIHJl YXNvbiB0byBhdXRvbG9hZCBpdCwgb3IgYW55IG90aGVyCj4gZ2FkZ2V0IG1vZHVsZSBpbiBwYXJ0 aWN1bGFyLCBzaW5jZSB0aGUgc3lzdGVtIGlzIGdlbmVyYWwtcHVycG9zZS4KClRoaXMgaXMgdGhl IGNhc2UgSSBjYWxsZWQgaXQgImluIGEgZW5naW5lZXJpbmcgbGFiIiwgbm90IGEgcmVhbCBwcm9k dWN0LgoKPiBUaGVuLCBpbWFnaW5lIGEgdXNlciB3YW50cyB0byBwbHVnIGEgVVNCIGRldmljZSB0 aHJvdWdoIE9URyAoc2F5LAo+IGJlY2F1c2UgaXQncyB0aGUgb25seSBVU0IgcG9ydCBhdmFpbGFi bGUgYXQgYWxsIG9uIHRoZSB0YWJsZXQgdGhleSdyZQo+IHVzaW5nKSwgaXQgc2ltcGx5IHdvbid0 IHdvcmsuIEl0IHdvbid0IGJlIG9idmlvdXMgdG8gdGhhdCB1c2VyIHRoYXQgdGhpcwo+IGlzIGJl Y2F1c2Ugbm8gZ2FkZ2V0IGlzIGxvYWRlZCwgc2luY2Ugd2hhdCB0aGV5IHdhbnQgdG8gZG8gZG9l cyBub3QKPiBpbnZvbHZlIHVzaW5nIGdhZGdldCBtb2RlIGF0IGFueSBwb2ludC4KCklmIGEgdGFi bGV0IGhhcyBhIGR1YWwtcm9sZSB1c2IgcG9ydCwgaXQgaXMgZGVzaWduZWQgdG8gdXNlIGEgZ2Fk Z2V0CmRyaXZlciwgd2hpY2ggaGFzIHRvIGJlIGxvYWRlZCBhdCBzb21lIHBvaW50LiBJbiB0aGUg Y2FzZSB5b3UgZGVzY3JpYmVkCmFib3ZlLCB3aGVuIHRoZSBnYWRnZXQgZHJpdmVyIHdpbGwgYmUg bG9hZGVkPyBhbmQgaG93PwoKSWYgYSBnYWRnZXQgZHJpdmVyIHdpbGwgbmV2ZXIgYmUgdXNlZCwg YSBob3N0LW9ubHkgcG9ydCBzaG91bGQgYmUgb24KdGhlIGJvYXJkLCBub3QgYSBkdWFsLXJvbGUg cG9ydC4KCj4gRG8geW91IHRoaW5rIHRoaXMgaXMgYSB2YWxpZCB1c2UgY2FzZT8gSXQgc3VyZWx5 IGlzIGEgY29tbW9uIG9uZSBhbmQKPiBwZXJmZWN0bHkgZGVwaWN0cyBteSBzaXR1YXRpb24uCgpB cyBJIGV4cGxhaW5lZCBhYm92ZSwgSSBkb24ndCB0aGluayBzby4KCj4gTm90ZSB0aGF0IGluIGFk ZGl0aW9uIHRvIEFsbHdpbm5lciBkZXZpY2VzLCBJIGFsc28gaGF2ZSBvbWFwMy80LzUKPiBkZXZp Y2VzIGZvciB0ZXN0aW5nIHRoaW5ncy4gSSBkb24ndCB0aGluayBJIGhhdmUgb3RoZXIgTVVTQi1l bmFibGVkCgpNdWNoIG1vcmUgdGhhbiB3aGF0IEkgaGF2ZSA7KQoKPiBkZXZpY2VzIGluIG15IGNv bGxlY3Rpb24gdGhvdWdoLCBidXQgSSB3b3VsZCBiZSB3aWxsaW5nIHRvIHRlc3QgZml4ZXMgdG8K PiB0aGlzIGlzc3VlIG9uIHRoZSBvbmVzIEkgaGF2ZS4KCkFwcHJlY2lhdGVkIGl0LCBidXQgc29t ZW9uZSBoYXMgdG8gbWFrZSB0aGUgcGF0Y2hlcyBmaXJzdC4gVGhlIG9uZSB5b3UKcG9zdGVkIG1p Z2h0IGJlIGEgZ29vZCBzdGFydCwgYnV0IGl0IGlzIG5vdCBjb21wbGV0ZS4gVGhlIGZpcnN0IHBy b2JsZW0KSSBzZWUgaXMgdGhhdCBtdXNiX3N0YXJ0KCkgd2lsbCBiZSBjYWxsZWQgdHdpY2UsIG9u ZSBpbiB0aGUgcGxhY2UgeW91CnBhdGNoZWQsIHRoZSBvdGhlciBpcyB3aGVuIHRoZSBnYWRnZXQg ZHJpdmVyIGlzIGJvdW5kIHRvIHRoZSBVREMuCgpSZWdhcmRzLAotQmluLgotLS0KVG8gdW5zdWJz Y3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXVz YiIgaW4KdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcK TW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8t aW5mby5odG1sCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-3060808-1525177565-2-17045101167452740795 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no ("Email failed DMARC policy for domain") X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.25, MAILING_LIST_MULTI -1, RCVD_IN_DNSWL_HI -5, LANGUAGES en, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='209.132.180.67', Host='vger.kernel.org', Country='US', FromHeader='com', MailFrom='org' X-Spam-charsets: plain='iso-8859-1' X-IgnoreVacation: yes ("Email failed DMARC policy for domain") X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: linux-usb-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=fm2; t= 1525177564; b=GFs+tKWItjPYvlFKFauVILjB8hdVSX1ZmXdT2A1nGCh3Z2muBs JW0BtuTnPKR32cgnvZ1YJgny48hyVlIdEXIMuAKqwCzWHf8QX8oeiIc9oc9QgEcp 3hbUcJPYsSm3QZUZc05VPHk5Ui4YJkujgynqfxa2lZFqjL1jAN/2czxo9T5jDkI7 jL6LqJzsKx15k5WuFXcGmKsgB+QwN2IP35EP0zmtOK0dXnr4n0VDaPIGjqeLVK0v drwuUFHkD1yREAAZXBarI8aCzehC3zMbFMRvQhXLv7Yv5oCpDP7+yTTOoNzyPBlY ydPRgJ5DPZ+IAl3gm7OiBKYg7tuqMe41urRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=date:from:to:cc:subject:message-id :references:mime-version:content-type:content-transfer-encoding :in-reply-to:sender:list-id; s=fm2; t=1525177564; bh=fstFr6f3dbX IDFXdgNDwicFw6AFysTG8uxgVtcXbLnc=; b=Vc6odM+AlVm2DWMxfnOJWlK/igy E7g1m4pvLh7uWjyAr47Y7ih5N1T7n9X8FiHxuEegpcbjt7Yt/EkUSMtB0aNedb/o oGO78zkOIqHfZAY65RrByAh6Hcu2pzDYCkE6A5jOd0gi8EfOzxmqPe7jbmuJnNIl 8lE6ZxsJ1BL3VFcgG4TTKFn8wCHeAUxJ38HaXXS5AfZxAqEmU4+KF5fW8IkAFr/S N/G5J8E6M0sEYdED+kpxhgCF0Zifl03UrTVsWUZaJPrNxcq4Afqo4gVOQ52gzZE9 sVz6kWNio+arAINOCbh34BFW2OIL2otwlbrfrkI3FNuFcQu/8Qcua2UKOcA== ARC-Authentication-Results: i=1; mx4.messagingengine.com; arc=none (no signatures found); dkim=fail (body has been altered, 1024-bit rsa key sha256) header.d=ti.com header.i=@ti.com header.b=NMNujenx x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=ti-com-17Q1; dmarc=fail (p=quarantine,has-list-id=yes,d=quarantine) header.from=ti.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-cm=none score=0; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=ti.com header.result=pass header_is_org_domain=yes; x-vs=clean score=-100 state=0 Authentication-Results: mx4.messagingengine.com; arc=none (no signatures found); dkim=fail (body has been altered, 1024-bit rsa key sha256) header.d=ti.com header.i=@ti.com header.b=NMNujenx x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=ti-com-17Q1; dmarc=fail (p=quarantine,has-list-id=yes,d=quarantine) header.from=ti.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-cm=none score=0; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=ti.com header.result=pass header_is_org_domain=yes; x-vs=clean score=-100 state=0 X-ME-VSCategory: clean X-CM-Envelope: MS4wfFQ/fJgru5X564r3Ln47pO3Xf0QmvqLawV8EmvuecUlSKztPUBI+AithDij++n8WH7bmNMEEgI+69GB03J2HM6thQ7otBfdik9WK61md2ZXqExs03+RU qy7hm2lUw3Nu2p9Zyphra3ST0N1+gs7qX8Rl/9Jy5bnm1pRVCy5Oeh/6f85NptLtRIl5WM6cyo2q+H4BNhksBeV8Ny8KHy8sq6Kx9UNVtXkO4QTqHZvvGacm X-CM-Analysis: v=2.3 cv=JLoVTfCb c=1 sm=1 tr=0 a=UK1r566ZdBxH71SXbqIOeA==:117 a=UK1r566ZdBxH71SXbqIOeA==:17 a=8nJEP1OIZ-IA:10 a=VUJBJC2UJ8kA:10 a=VwQbUJbxAAAA:8 a=H15RgtuIrPfxKeBy5lUA:9 a=JGlBsGInkvCyc3Qw:21 a=0fxTz4ci5Wlq5rnn:21 a=wPNLvfGTeEIA:10 a=x8gzFH9gYPwA:10 a=AjGcO6oz07-iQ99wixmX:22 X-ME-CMScore: 0 X-ME-CMCategory: none Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755044AbeEAMZu (ORCPT ); Tue, 1 May 2018 08:25:50 -0400 Received: from fllnx210.ext.ti.com ([198.47.19.17]:40620 "EHLO fllnx210.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754827AbeEAMZt (ORCPT ); Tue, 1 May 2018 08:25:49 -0400 Date: Tue, 1 May 2018 07:25:33 -0500 From: Bin Liu To: Paul Kocialkowski CC: Paul Kocialkowski , Maxime Ripard , , , Greg Kroah-Hartman , Chen-Yu Tsai Subject: Re: [PATCH] usb: musb: Support gadget mode when the port is set to dual role Message-ID: <20180501122533.GD21238@uda0271908> Mail-Followup-To: Bin Liu , Paul Kocialkowski , Paul Kocialkowski , Maxime Ripard , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Greg Kroah-Hartman , Chen-Yu Tsai References: <20180328215213.29538-1-contact@paulk.fr> <20180329092326.dayuccomq5zrywqo@flea> <1522324644.1746.19.camel@bootlin.com> <20180420142524.GB29011@uda0271908> <2db056d6f65ecbcdc4f31a37fe2e1b1ddfb93c87.camel@paulk.fr> <20180421143426.GA10632@LTA0271908.dhcp.ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-usb-owner@vger.kernel.org X-Mailing-List: linux-usb@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: On Mon, Apr 30, 2018 at 11:08:42PM +0200, Paul Kocialkowski wrote: > Hi, > > Le samedi 21 avril 2018 à 09:34 -0500, Bin Liu a écrit : > > Okay, this came down to an argument that whether we should require > > loading a gadget driver on a dual-role port to work in host mode, > > which is currently required on musb since a long long time ago. > > > > I understand the requirement is kinda unnecessary, but since it > > already > > exists on musb stack for a long time, I don't plan to change it. > > Because I > > cannot think of a use case in real products that doesn't automatically > > load a gadget function on the dual-role port. > > > > If you can explain a use case in real world (not a engineering lab) > > that the gadget driver will not be loaded at linux booting up, but > > later based on user's input, I will reconsider my decision. To remove > > this requirement from musb stack, the work is more than this patch. > > My use case here is to support common GNU/Linux-based distributions, not > use-case-specific varieties of GNU/Linux-based rootfs. So my point here > would be that most distros will (and probably should) ship g_ether as a > module but without any particular reason to autoload it, or any other > gadget module in particular, since the system is general-purpose. This is the case I called it "in a engineering lab", not a real product. > Then, imagine a user wants to plug a USB device through OTG (say, > because it's the only USB port available at all on the tablet they're > using), it simply won't work. It won't be obvious to that user that this > is because no gadget is loaded, since what they want to do does not > involve using gadget mode at any point. If a tablet has a dual-role usb port, it is designed to use a gadget driver, which has to be loaded at some point. In the case you described above, when the gadget driver will be loaded? and how? If a gadget driver will never be used, a host-only port should be on the board, not a dual-role port. > Do you think this is a valid use case? It surely is a common one and > perfectly depicts my situation. As I explained above, I don't think so. > Note that in addition to Allwinner devices, I also have omap3/4/5 > devices for testing things. I don't think I have other MUSB-enabled Much more than what I have ;) > devices in my collection though, but I would be willing to test fixes to > this issue on the ones I have. Appreciated it, but someone has to make the patches first. The one you posted might be a good start, but it is not complete. The first problem I see is that musb_start() will be called twice, one in the place you patched, the other is when the gadget driver is bound to the UDC. Regards, -Bin.