From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AB8JxZpikOWuqeTH4sB/jJVbBD7Pz6rfAScZngIAshBBkr1PVWeKYRluNEnHgDg4CKPWEemotNKp ARC-Seal: i=1; a=rsa-sha256; t=1524234331; cv=none; d=google.com; s=arc-20160816; b=wE0IGJnCcCKBjI8tu6ScNAq2D6W3IWTEI36aeV7j25d0KX7HmyJaqqYGzu6tPYZ2pT LdmzhmUDJsjsvyGfAyGtDYxf3KuiLU0RD+SSTrnfYVZ/PrU0m3BzP/ButfMQf2Z2Sh8U KePeEovKWkzgC1uVpO0NfJi1LVTL+i0jNwJcIb9wvxFe7pTdBTpc+9IIGWep5eQhxIwE JoOiKiFThhh4uE6stDgnA4qmCz+xLMsEjBrIcWYFBH1hrAZGU5vOK5wfa2+47GxURfXn MNzNkCqX9bOpEyYeuBgpjYLmBz2h6Rds0/JDdKrMClpCwJqrq+GO/uhmWVjL2BuD8OrJ 6j7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=user-agent:in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:dkim-signature :arc-authentication-results; bh=SzaY70idKtePIK+t8g+k6yRZRfxhCB9nxzJwZQZBdAg=; b=dLeDEQqkbB2slaXVLj6jhbypVzRpwdu/LAKD2or3pK0N5RGcsDTlkloma3myMkWrjO XiUzF3rytOfSlge+penC6FViPSyL1c/au/dHyir0a4gA7RlEmOHW1Urud5qH4mcvYJnL oj7FVFIRSHfmKbxKUEdgxmNAFLJZwmuAsLFU3vML4pRyEfHodR0iO1KQB3c+Y1mh/x6Z +CkVkcKWOKPky7FqaPefT4TrdXmCeCfpquCigXM/opi0MsQpINxyU8wxuUqC4oPfmogL Ghu0l5Dsl1l0Hx9Si6rV3ZPl14xHG9q9hIXXG+vL6WchG3MwS7w0WsbKvUM0L6KYIG0I OF5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=Ci/iit2q; spf=pass (google.com: domain of b-liu@ti.com designates 198.47.19.16 as permitted sender) smtp.mailfrom=b-liu@ti.com; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=Ci/iit2q; spf=pass (google.com: domain of b-liu@ti.com designates 198.47.19.16 as permitted sender) smtp.mailfrom=b-liu@ti.com; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Date: Fri, 20 Apr 2018 09:25:24 -0500 From: Bin Liu To: Paul Kocialkowski CC: Maxime Ripard , , , Greg Kroah-Hartman , Chen-Yu Tsai , Paul Kocialkowski Subject: Re: [PATCH] usb: musb: Support gadget mode when the port is set to dual role Message-ID: <20180420142524.GB29011@uda0271908> Mail-Followup-To: Bin Liu , Paul Kocialkowski , Maxime Ripard , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Greg Kroah-Hartman , Chen-Yu Tsai , Paul Kocialkowski References: <20180328215213.29538-1-contact@paulk.fr> <20180329092326.dayuccomq5zrywqo@flea> <1522324644.1746.19.camel@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1522324644.1746.19.camel@bootlin.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1596219936239404188?= X-GMAIL-MSGID: =?utf-8?q?1598275538878546947?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: On Thu, Mar 29, 2018 at 01:57:24PM +0200, Paul Kocialkowski wrote: > Hi, > > On Thu, 2018-03-29 at 11:23 +0200, Maxime Ripard wrote: > > On Wed, Mar 28, 2018 at 11:52:13PM +0200, Paul Kocialkowski wrote: > > > This allows dual-role ports to be reported as having gadget mode by > > > the > > > musb_has_gadget helper. This is required to enable MUSB at all with > > > MUSB > > > glue layers that set the port mode to MUSB_PORT_MODE_DUAL_ROLE at > > > init. > > > > > > Most notably, this allows calling musb_start when needed in the > > > virtual > > > MUSB root HUB, regardless of whether the current mode should be > > > gadget > > > or host. > > > > > > This fixes USB OTG on Allwinner devices that I could test it with, > > > mainly A20 devices. > > > > > > Signed-off-by: Paul Kocialkowski > > > > Surely there's more to it than that. The gadget mode of A20 boards > > have been working in the past, including when compiling with mUSB > > setup as dual role. > > > > Is this a regression since a particular commit? Or is there another, > > deeper issue overlooked in the commit log? > > The root of the issue here is that musb_start is not called at any point > without this patch. My understanding of the flow is the following: when > the PHY detects that there was a VBUS/ID change, it will notify its > listeners (mainly the musb sunxi glue layer). This will then schedule > the driver's work (sunxi_musb_work), which does nothing since the > SUNXI_MUSB_FL_ENABLED bit was never set. This bit is only set after > calling sunxi_musb_enable, which is called from musb_platform_enable, > that originates from musb_start. > > Currently I see two places where musb_start is called: > * musb_virthub > * musb_gadget > > In the latter case, it is in turn called from udc_start, which should > probably (correct me if I'm wrong) happen later in the call chain than > ID/VBUS change notification time. I don't think it is correct that udc_start() is triggered by ID/VBUS events, but I don't have an Allwinner platform to verify the callflow. Have you tried to load with a gadget driver? When a gadget function is bound to UDC, udc_start() is triggered, which in turn calls musb_start(). > > In the former case, musb_start is called in the root controller hub > control, when setting the USB_PORT_FEAT_POWER feature. This looks > perfectly legit and IMO this is where it should be initially calling > musb_start in the dual role case. The kernel is indeed setting the No actually. A dual-role port should be in b_idle state by default, so logically all actions should go to the gadget path until the port switches to host mode. > feature, only that it fails to enable musb without this patch. > > First, I'd like to make sure that this understanding of the flow is > correct as I may have missed something here. Does it make sense? I am guessing you didn't load a gadget driver when testing? > Then, it seems that the offending commit is: be9d39881fc4f > ("usb: musb: host: rely on port_mode to call musb_start()") > > That itself fixed: ae44df2e21b5 > ("usb: musb: call musb_start() only once in OTG mode") > > Still, this commit was authored in June 2015, so almost 3 years ago. > In the meantime, the sunxi driver has received feature improvements, so > it seems hard to believe that it was broken all this time... > > Cheers, Regards, -Bin. 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: <20180420142524.GB29011@uda0271908> Date: Fri, 20 Apr 2018 09:25:24 -0500 To: Paul Kocialkowski Cc: Maxime Ripard , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Greg Kroah-Hartman , Chen-Yu Tsai , Paul Kocialkowski List-ID: T24gVGh1LCBNYXIgMjksIDIwMTggYXQgMDE6NTc6MjRQTSArMDIwMCwgUGF1bCBLb2NpYWxrb3dz a2kgd3JvdGU6Cj4gSGksCj4gCj4gT24gVGh1LCAyMDE4LTAzLTI5IGF0IDExOjIzICswMjAwLCBN YXhpbWUgUmlwYXJkIHdyb3RlOgo+ID4gT24gV2VkLCBNYXIgMjgsIDIwMTggYXQgMTE6NTI6MTNQ TSArMDIwMCwgUGF1bCBLb2NpYWxrb3dza2kgd3JvdGU6Cj4gPiA+IFRoaXMgYWxsb3dzIGR1YWwt cm9sZSBwb3J0cyB0byBiZSByZXBvcnRlZCBhcyBoYXZpbmcgZ2FkZ2V0IG1vZGUgYnkKPiA+ID4g dGhlCj4gPiA+IG11c2JfaGFzX2dhZGdldCBoZWxwZXIuIFRoaXMgaXMgcmVxdWlyZWQgdG8gZW5h YmxlIE1VU0IgYXQgYWxsIHdpdGgKPiA+ID4gTVVTQgo+ID4gPiBnbHVlIGxheWVycyB0aGF0IHNl dCB0aGUgcG9ydCBtb2RlIHRvIE1VU0JfUE9SVF9NT0RFX0RVQUxfUk9MRSBhdAo+ID4gPiBpbml0 Lgo+ID4gPiAKPiA+ID4gTW9zdCBub3RhYmx5LCB0aGlzIGFsbG93cyBjYWxsaW5nIG11c2Jfc3Rh cnQgd2hlbiBuZWVkZWQgaW4gdGhlCj4gPiA+IHZpcnR1YWwKPiA+ID4gTVVTQiByb290IEhVQiwg cmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBjdXJyZW50IG1vZGUgc2hvdWxkIGJlCj4gPiA+IGdh ZGdldAo+ID4gPiBvciBob3N0Lgo+ID4gPiAKPiA+ID4gVGhpcyBmaXhlcyBVU0IgT1RHIG9uIEFs bHdpbm5lciBkZXZpY2VzIHRoYXQgSSBjb3VsZCB0ZXN0IGl0IHdpdGgsCj4gPiA+IG1haW5seSBB MjAgZGV2aWNlcy4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhdWwgS29jaWFsa293c2tp IDxjb250YWN0QHBhdWxrLmZyPgo+ID4gCj4gPiBTdXJlbHkgdGhlcmUncyBtb3JlIHRvIGl0IHRo YW4gdGhhdC4gVGhlIGdhZGdldCBtb2RlIG9mIEEyMCBib2FyZHMKPiA+IGhhdmUgYmVlbiB3b3Jr aW5nIGluIHRoZSBwYXN0LCBpbmNsdWRpbmcgd2hlbiBjb21waWxpbmcgd2l0aCBtVVNCCj4gPiBz ZXR1cCBhcyBkdWFsIHJvbGUuCj4gPgo+ID4gSXMgdGhpcyBhIHJlZ3Jlc3Npb24gc2luY2UgYSBw YXJ0aWN1bGFyIGNvbW1pdD8gT3IgaXMgdGhlcmUgYW5vdGhlciwKPiA+IGRlZXBlciBpc3N1ZSBv dmVybG9va2VkIGluIHRoZSBjb21taXQgbG9nPwo+IAo+IFRoZSByb290IG9mIHRoZSBpc3N1ZSBo ZXJlIGlzIHRoYXQgbXVzYl9zdGFydCBpcyBub3QgY2FsbGVkIGF0IGFueSBwb2ludAo+IHdpdGhv dXQgdGhpcyBwYXRjaC4gTXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgZmxvdyBpcyB0aGUgZm9sbG93 aW5nOiB3aGVuCj4gdGhlIFBIWSBkZXRlY3RzIHRoYXQgdGhlcmUgd2FzIGEgVkJVUy9JRCBjaGFu Z2UsIGl0IHdpbGwgbm90aWZ5IGl0cwo+IGxpc3RlbmVycyAobWFpbmx5IHRoZSBtdXNiIHN1bnhp IGdsdWUgbGF5ZXIpLiBUaGlzIHdpbGwgdGhlbiBzY2hlZHVsZQo+IHRoZSBkcml2ZXIncyB3b3Jr IChzdW54aV9tdXNiX3dvcmspLCB3aGljaCBkb2VzIG5vdGhpbmcgc2luY2UgdGhlCj4gU1VOWElf TVVTQl9GTF9FTkFCTEVEIGJpdCB3YXMgbmV2ZXIgc2V0LiBUaGlzIGJpdCBpcyBvbmx5IHNldCBh ZnRlcgo+IGNhbGxpbmcgc3VueGlfbXVzYl9lbmFibGUsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIG11 c2JfcGxhdGZvcm1fZW5hYmxlLAo+IHRoYXQgb3JpZ2luYXRlcyBmcm9tIG11c2Jfc3RhcnQuCj4g Cj4gQ3VycmVudGx5IEkgc2VlIHR3byBwbGFjZXMgd2hlcmUgbXVzYl9zdGFydCBpcyBjYWxsZWQ6 Cj4gKiBtdXNiX3ZpcnRodWIKPiAqIG11c2JfZ2FkZ2V0Cj4gCj4gSW4gdGhlIGxhdHRlciBjYXNl LCBpdCBpcyBpbiB0dXJuIGNhbGxlZCBmcm9tIHVkY19zdGFydCwgd2hpY2ggc2hvdWxkCj4gcHJv YmFibHkgKGNvcnJlY3QgbWUgaWYgSSdtIHdyb25nKSBoYXBwZW4gbGF0ZXIgaW4gdGhlIGNhbGwg Y2hhaW4gdGhhbgo+IElEL1ZCVVMgY2hhbmdlIG5vdGlmaWNhdGlvbiB0aW1lLgoKSSBkb24ndCB0 aGluayBpdCBpcyBjb3JyZWN0IHRoYXQgdWRjX3N0YXJ0KCkgaXMgdHJpZ2dlcmVkIGJ5IElEL1ZC VVMKZXZlbnRzLCBidXQgSSBkb24ndCBoYXZlIGFuIEFsbHdpbm5lciBwbGF0Zm9ybSB0byB2ZXJp ZnkgdGhlIGNhbGxmbG93LgoKSGF2ZSB5b3UgdHJpZWQgdG8gbG9hZCB3aXRoIGEgZ2FkZ2V0IGRy aXZlcj8gV2hlbiBhIGdhZGdldCBmdW5jdGlvbiBpcwpib3VuZCB0byBVREMsIHVkY19zdGFydCgp IGlzIHRyaWdnZXJlZCwgd2hpY2ggaW4gdHVybiBjYWxscwptdXNiX3N0YXJ0KCkuCgo+IAo+IElu IHRoZSBmb3JtZXIgY2FzZSwgbXVzYl9zdGFydCBpcyBjYWxsZWQgaW4gdGhlIHJvb3QgY29udHJv bGxlciBodWIKPiBjb250cm9sLCB3aGVuIHNldHRpbmcgdGhlIFVTQl9QT1JUX0ZFQVRfUE9XRVIg ZmVhdHVyZS4gVGhpcyBsb29rcwo+IHBlcmZlY3RseSBsZWdpdCBhbmQgSU1PIHRoaXMgaXMgd2hl cmUgaXQgc2hvdWxkIGJlIGluaXRpYWxseSBjYWxsaW5nCj4gbXVzYl9zdGFydCBpbiB0aGUgZHVh bCByb2xlIGNhc2UuIFRoZSBrZXJuZWwgaXMgaW5kZWVkIHNldHRpbmcgdGhlCgpObyBhY3R1YWxs eS4gQSBkdWFsLXJvbGUgcG9ydCBzaG91bGQgYmUgaW4gYl9pZGxlIHN0YXRlIGJ5IGRlZmF1bHQs IHNvCmxvZ2ljYWxseSBhbGwgYWN0aW9ucyBzaG91bGQgZ28gdG8gdGhlIGdhZGdldCBwYXRoIHVu dGlsIHRoZSBwb3J0CnN3aXRjaGVzIHRvIGhvc3QgbW9kZS4KCj4gZmVhdHVyZSwgb25seSB0aGF0 IGl0IGZhaWxzIHRvIGVuYWJsZSBtdXNiIHdpdGhvdXQgdGhpcyBwYXRjaC4KPiAKPiBGaXJzdCwg SSdkIGxpa2UgdG8gbWFrZSBzdXJlIHRoYXQgdGhpcyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmbG93 IGlzCj4gY29ycmVjdCBhcyBJIG1heSBoYXZlIG1pc3NlZCBzb21ldGhpbmcgaGVyZS4gRG9lcyBp dCBtYWtlIHNlbnNlPwoKSSBhbSBndWVzc2luZyB5b3UgZGlkbid0IGxvYWQgYSBnYWRnZXQgZHJp dmVyIHdoZW4gdGVzdGluZz8KCj4gVGhlbiwgaXQgc2VlbXMgdGhhdCB0aGUgb2ZmZW5kaW5nIGNv bW1pdCBpczogYmU5ZDM5ODgxZmM0Zgo+ICgidXNiOiBtdXNiOiBob3N0OiByZWx5IG9uIHBvcnRf bW9kZSB0byBjYWxsIG11c2Jfc3RhcnQoKSIpCj4gCj4gVGhhdCBpdHNlbGYgZml4ZWQ6IGFlNDRk ZjJlMjFiNQo+ICgidXNiOiBtdXNiOiBjYWxsIG11c2Jfc3RhcnQoKSBvbmx5IG9uY2UgaW4gT1RH IG1vZGUiKQo+IAo+IFN0aWxsLCB0aGlzIGNvbW1pdCB3YXMgYXV0aG9yZWQgaW4gSnVuZSAyMDE1 LCBzbyBhbG1vc3QgMyB5ZWFycyBhZ28uCj4gSW4gdGhlIG1lYW50aW1lLCB0aGUgc3VueGkgZHJp dmVyIGhhcyByZWNlaXZlZCBmZWF0dXJlIGltcHJvdmVtZW50cywgc28KPiBpdCBzZWVtcyBoYXJk IHRvIGJlbGlldmUgdGhhdCBpdCB3YXMgYnJva2VuIGFsbCB0aGlzIHRpbWUuLi4KPiAKPiBDaGVl cnMsCgpSZWdhcmRzLAotQmluLgotLS0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNl bmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXVzYiIgaW4KdGhlIGJvZHkgb2YgYSBtZXNz YWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAg aHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sCg==