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: Force-disable pullup on shutdown From: Bin Liu Message-Id: <20190403132600.GQ25852@uda0271908> Date: Wed, 3 Apr 2019 08:26:00 -0500 To: Paul Cercueil Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, od@zcrc.me List-ID: T24gVHVlLCBBcHIgMDIsIDIwMTkgYXQgMDk6NTg6NDJQTSArMDIwMCwgUGF1bCBDZXJjdWVpbCB3 cm90ZToKPiBIaSwKPiAKPiBMZSBsdW4uIDEgYXZyaWwgMjAxOSDDoCAyMDoyMCwgQmluIExpdSA8 Yi1saXVAdGkuY29tPiBhIMOpY3JpdCA6Cj4gPk9uIE1vbiwgQXByIDAxLCAyMDE5IGF0IDA3OjQ2 OjIyUE0gKzAyMDAsIFBhdWwgQ2VyY3VlaWwgd3JvdGU6Cj4gPj4KPiA+Pgo+ID4+IExlIGx1bi4g MSBhdnJpbCAyMDE5IMOgIDE5OjE3LCBCaW4gTGl1IDxiLWxpdUB0aS5jb20+IGEgw6ljcml0IDoK PiA+PiA+T24gVGh1LCBNYXIgMjEsIDIwMTkgYXQgMDM6NDI6NDZQTSArMDEwMCwgUGF1bCBDZXJj dWVpbCB3cm90ZToKPiA+PiA+PiBXaGVuIHRoZSBtdXNiIGlzIHNodXRkb3duLCBmb3IgaW5zdGFu Y2Ugd2hlbiB0aGUgZHJpdmVyIGlzCj4gPj51bmxvYWRlZCwKPiA+PiA+PiBmb3JjZS1kaXNhYmxl IHRoZSBwdWxsdXAuIE90aGVyd2lzZSwgdGhlIGhvc3Qgd2lsbCBzdGlsbCBzZWUKPiA+PiA+PnRo ZSBnYWRnZXQKPiA+PiA+PiBkZXZpY2UgZXZlbiBhZnRlciB0aGUgc2h1dGRvd24uCj4gPj4gPgo+ ID4+ID5ob3cgd291bGQgdGhpcyBoYXBwZW4/Cj4gPj4gPgo+ID4+ID53aGVuIG11c2ItaGRyYyBk cml2ZXIgaXMgdW5sb2FkZWQsIHVkYyBjb3JlIHJlbW92ZXMgdGhlIGJvdW5kCj4gPj5nYWRnZXQK PiA+PiA+ZHJpdmVyIHdoaWNoIGNhbGxzIG11c2JfZ2FkZ2V0X3B1bGx1cCgpIHRvIGRpc2FibGUg dGhlIHB1bGx1cC4KPiA+Pgo+ID4+IEknbSB0ZXN0aW5nIHdpdGggdGhlIGp6NDc0MC1tdXNiIGRy aXZlci4gSSBkb24ndCB1bmxvYWQgdGhlCj4gPj5tb2R1bGUgKGl0J3MKPiA+PiBidWlsdC1pbikg YnV0IHVuYmluZCBpdCBmcm9tIHN5c2ZzLgo+ID4KPiA+SSBkaWQgdW5iaW5kIHRvby4KPiA+Cj4g PnJvb3RAYW0zMzV4LWV2bTovc3lzL2J1cy9wbGF0Zm9ybS9kcml2ZXJzL211c2ItaGRyYyMgZWNo bwo+ID5tdXNiLWhkcmMuMCA+IHVuYmluZAo+ID4KPiA+b3IgdW5iaW5kIHRoZSBnbHVlIGRyaXZl cjoKPiA+Cj4gPnJvb3RAYW0zMzV4LWV2bTovc3lzL2J1cy9wbGF0Zm9ybS9kcml2ZXJzL211c2It ZHNwcyMgZWNobwo+ID40NzQwMTQwMC51c2IgPiB1bmJpbmQKPiA+Cj4gPm11c2JfZ2FkZ2V0X3B1 bGx1cCgpIGlzIGNhbGxlZCBpbiBib3RoIGNhc2VzLgo+ID4KPiA+WyAzODgwLjU5NzAxNF0gWzxi ZjQ0NGFiMD5dIChtdXNiX2dhZGdldF9wdWxsdXAgW211c2JfaGRyY10pIGZyb20KPiA+WzxiZjQw MmNiYz5dICh1c2JfZ2FkZ2V0X2Rpc2Nvbm5lY3QrMHgzYy8weGY0IFt1ZGNfY29yZV0pCj4gPlsg Mzg4MC42MDc5NTldIFs8YmY0MDJjYmM+XSAodXNiX2dhZGdldF9kaXNjb25uZWN0IFt1ZGNfY29y ZV0pCj4gPmZyb20gWzxiZjQwM2IyOD5dICh1c2JfZ2FkZ2V0X3JlbW92ZV9kcml2ZXIrMHg0Yy8w eDkwIFt1ZGNfY29yZV0pCj4gPlsgMzg4MC42MTkzMzhdIFs8YmY0MDNiMjg+XSAodXNiX2dhZGdl dF9yZW1vdmVfZHJpdmVyIFt1ZGNfY29yZV0pCj4gPmZyb20gWzxiZjQwM2QyMD5dICh1c2JfZGVs X2dhZGdldF91ZGMrMHg1Yy8weGMwIFt1ZGNfY29yZV0pCj4gCj4gSW4gbXkgY2FzZSB0aGlzIHN0 b3BzIGhlcmUsIHVzYl9kZWxfZ2FkZ2V0X3VkYygpIGRvZXMgbm90IGNhbGwKPiB1c2JfZ2FkZ2V0 X3JlbW92ZV9kcml2ZXIoKSwgdGhhdCdzIHdoeSB0aGUgcHVsbHVwIGlzIG5ldmVyIGRpc2FibGVk Lgo+IAo+IEkgZ3Vlc3MgdGhhdCdzIGJlY2F1c2UgdWRjLT5kcml2ZXIgaXMgTlVMTDsgSSdtIHRl c3Rpbmcgd2l0aAoKdGhlbiB0aGUgcHVsbHVwIHNob3VsZCBiZSBkaXNhYmxlIGJ5IG5vdy4KCj4g Q09ORklHX1VTQl9DT05GSUdGUywKPiBhbmQgSSBkb24ndCBjb25maWd1cmUgYW55dGhpbmcgaW4g c3lzZnMgYmVmb3JlIHVuYmluZGluZyB0aGUgZHJpdmVyLgoKSSBkaWRuJ3QgY2hlY2sgb24gdGhp cywgYnV0IEkgY291bGQgaW1hZ2luZSB0aGF0Ci0gd2hlbiBhIGNvbmZpZ2ZzIGdhZGdldCBpcyBi b3VuZCB0byB0aGUgdWRjLCAucHVsbHVwKCkgaXMgY2FsbGVkOwotIHdoZW4gdGhlIGNvbmZpZ2Zz IGdhZGdldCBpcyB1bmJvdW5kIGZyb20gdGhlIHVkYywgLnB1bGx1cCBzaG91bGQgYmUKICBjYWxs ZWQgYWdhaW4gdG8gZGlzYWJsZSB0aGUgcHVsbHVwLgoKLUJpbi4K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CC916C4360F for ; Wed, 3 Apr 2019 13:26:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8DAC32084C for ; Wed, 3 Apr 2019 13:26:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="cqKNvNBa" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726756AbfDCN0R (ORCPT ); Wed, 3 Apr 2019 09:26:17 -0400 Received: from lelv0142.ext.ti.com ([198.47.23.249]:60396 "EHLO lelv0142.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726628AbfDCN0H (ORCPT ); Wed, 3 Apr 2019 09:26:07 -0400 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id x33DQ0gX113931; Wed, 3 Apr 2019 08:26:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1554297960; bh=30SzqplYVs7grg6I7qfHiMDOVncG2UIO899Trs/gO7M=; h=Date:From:To:CC:Subject:References:In-Reply-To; b=cqKNvNBaQKLpQsp0d5c+H0XKX2kXLloO39KqsxVxm6ByProFacmnycRHCA89PHTzR +uKROseX5fNu8ybdO+9xvHIIJ1WpT3Hxw6+sFTa4IhFw+HXdy9VXJHhAw2yeAcbja8 4CM+skBUzNV1SBVj7dinG/juN1OQOIsJIrPWfXNg= Received: from DLEE103.ent.ti.com (dlee103.ent.ti.com [157.170.170.33]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id x33DQ0jN021432 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 3 Apr 2019 08:26:00 -0500 Received: from DLEE115.ent.ti.com (157.170.170.26) by DLEE103.ent.ti.com (157.170.170.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5; Wed, 3 Apr 2019 08:26:00 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DLEE115.ent.ti.com (157.170.170.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5 via Frontend Transport; Wed, 3 Apr 2019 08:26:00 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0039.itg.ti.com (8.15.2/8.15.2) with ESMTP id x33DQ0Te068053; Wed, 3 Apr 2019 08:26:00 -0500 Date: Wed, 3 Apr 2019 08:26:00 -0500 From: Bin Liu To: Paul Cercueil CC: , , Subject: Re: [PATCH] usb: musb: Force-disable pullup on shutdown Message-ID: <20190403132600.GQ25852@uda0271908> Mail-Followup-To: Bin Liu , Paul Cercueil , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, od@zcrc.me References: <20190321144246.3547-1-paul@crapouillou.net> <20190401171725.GK25852@uda0271908> <1554140782.10471.0@crapouillou.net> <20190401182008.GL25852@uda0271908> <1554235122.13181.0@crapouillou.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1554235122.13181.0@crapouillou.net> User-Agent: Mutt/1.5.21 (2010-09-15) X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 02, 2019 at 09:58:42PM +0200, Paul Cercueil wrote: > Hi, > > Le lun. 1 avril 2019 à 20:20, Bin Liu a écrit : > >On Mon, Apr 01, 2019 at 07:46:22PM +0200, Paul Cercueil wrote: > >> > >> > >> Le lun. 1 avril 2019 à 19:17, Bin Liu a écrit : > >> >On Thu, Mar 21, 2019 at 03:42:46PM +0100, Paul Cercueil wrote: > >> >> When the musb is shutdown, for instance when the driver is > >>unloaded, > >> >> force-disable the pullup. Otherwise, the host will still see > >> >>the gadget > >> >> device even after the shutdown. > >> > > >> >how would this happen? > >> > > >> >when musb-hdrc driver is unloaded, udc core removes the bound > >>gadget > >> >driver which calls musb_gadget_pullup() to disable the pullup. > >> > >> I'm testing with the jz4740-musb driver. I don't unload the > >>module (it's > >> built-in) but unbind it from sysfs. > > > >I did unbind too. > > > >root@am335x-evm:/sys/bus/platform/drivers/musb-hdrc# echo > >musb-hdrc.0 > unbind > > > >or unbind the glue driver: > > > >root@am335x-evm:/sys/bus/platform/drivers/musb-dsps# echo > >47401400.usb > unbind > > > >musb_gadget_pullup() is called in both cases. > > > >[ 3880.597014] [] (musb_gadget_pullup [musb_hdrc]) from > >[] (usb_gadget_disconnect+0x3c/0xf4 [udc_core]) > >[ 3880.607959] [] (usb_gadget_disconnect [udc_core]) > >from [] (usb_gadget_remove_driver+0x4c/0x90 [udc_core]) > >[ 3880.619338] [] (usb_gadget_remove_driver [udc_core]) > >from [] (usb_del_gadget_udc+0x5c/0xc0 [udc_core]) > > In my case this stops here, usb_del_gadget_udc() does not call > usb_gadget_remove_driver(), that's why the pullup is never disabled. > > I guess that's because udc->driver is NULL; I'm testing with then the pullup should be disable by now. > CONFIG_USB_CONFIGFS, > and I don't configure anything in sysfs before unbinding the driver. I didn't check on this, but I could imagine that - when a configfs gadget is bound to the udc, .pullup() is called; - when the configfs gadget is unbound from the udc, .pullup should be called again to disable the pullup. -Bin.