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: <20190403154654.GR25852@uda0271908> Date: Wed, 3 Apr 2019 10:46:54 -0500 To: Paul Cercueil Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, od@zcrc.me List-ID: T24gV2VkLCBBcHIgMDMsIDIwMTkgYXQgMDU6MzE6MzFQTSArMDIwMCwgUGF1bCBDZXJjdWVpbCB3 cm90ZToKPiAKPiAKPiBMZSBtZXIuIDMgYXZyaWwgMjAxOSDDoCAxNToyNiwgQmluIExpdSA8Yi1s aXVAdGkuY29tPiBhIMOpY3JpdCA6Cj4gPk9uIFR1ZSwgQXByIDAyLCAyMDE5IGF0IDA5OjU4OjQy UE0gKzAyMDAsIFBhdWwgQ2VyY3VlaWwgd3JvdGU6Cj4gPj4gSGksCj4gPj4KPiA+PiBMZSBsdW4u IDEgYXZyaWwgMjAxOSDDoCAyMDoyMCwgQmluIExpdSA8Yi1saXVAdGkuY29tPiBhIMOpY3JpdCA6 Cj4gPj4gPk9uIE1vbiwgQXByIDAxLCAyMDE5IGF0IDA3OjQ2OjIyUE0gKzAyMDAsIFBhdWwgQ2Vy Y3VlaWwgd3JvdGU6Cj4gPj4gPj4KPiA+PiA+Pgo+ID4+ID4+IExlIGx1bi4gMSBhdnJpbCAyMDE5 IMOgIDE5OjE3LCBCaW4gTGl1IDxiLWxpdUB0aS5jb20+IGEgw6ljcml0IDoKPiA+PiA+PiA+T24g VGh1LCBNYXIgMjEsIDIwMTkgYXQgMDM6NDI6NDZQTSArMDEwMCwgUGF1bCBDZXJjdWVpbCB3cm90 ZToKPiA+PiA+PiA+PiBXaGVuIHRoZSBtdXNiIGlzIHNodXRkb3duLCBmb3IgaW5zdGFuY2Ugd2hl biB0aGUgZHJpdmVyIGlzCj4gPj4gPj51bmxvYWRlZCwKPiA+PiA+PiA+PiBmb3JjZS1kaXNhYmxl IHRoZSBwdWxsdXAuIE90aGVyd2lzZSwgdGhlIGhvc3Qgd2lsbCBzdGlsbCBzZWUKPiA+PiA+PiA+ PnRoZSBnYWRnZXQKPiA+PiA+PiA+PiBkZXZpY2UgZXZlbiBhZnRlciB0aGUgc2h1dGRvd24uCj4g Pj4gPj4gPgo+ID4+ID4+ID5ob3cgd291bGQgdGhpcyBoYXBwZW4/Cj4gPj4gPj4gPgo+ID4+ID4+ ID53aGVuIG11c2ItaGRyYyBkcml2ZXIgaXMgdW5sb2FkZWQsIHVkYyBjb3JlIHJlbW92ZXMgdGhl IGJvdW5kCj4gPj4gPj5nYWRnZXQKPiA+PiA+PiA+ZHJpdmVyIHdoaWNoIGNhbGxzIG11c2JfZ2Fk Z2V0X3B1bGx1cCgpIHRvIGRpc2FibGUgdGhlIHB1bGx1cC4KPiA+PiA+Pgo+ID4+ID4+IEknbSB0 ZXN0aW5nIHdpdGggdGhlIGp6NDc0MC1tdXNiIGRyaXZlci4gSSBkb24ndCB1bmxvYWQgdGhlCj4g Pj4gPj5tb2R1bGUgKGl0J3MKPiA+PiA+PiBidWlsdC1pbikgYnV0IHVuYmluZCBpdCBmcm9tIHN5 c2ZzLgo+ID4+ID4KPiA+PiA+SSBkaWQgdW5iaW5kIHRvby4KPiA+PiA+Cj4gPj4gPnJvb3RAYW0z MzV4LWV2bTovc3lzL2J1cy9wbGF0Zm9ybS9kcml2ZXJzL211c2ItaGRyYyMgZWNobwo+ID4+ID5t dXNiLWhkcmMuMCA+IHVuYmluZAo+ID4+ID4KPiA+PiA+b3IgdW5iaW5kIHRoZSBnbHVlIGRyaXZl cjoKPiA+PiA+Cj4gPj4gPnJvb3RAYW0zMzV4LWV2bTovc3lzL2J1cy9wbGF0Zm9ybS9kcml2ZXJz L211c2ItZHNwcyMgZWNobwo+ID4+ID40NzQwMTQwMC51c2IgPiB1bmJpbmQKPiA+PiA+Cj4gPj4g Pm11c2JfZ2FkZ2V0X3B1bGx1cCgpIGlzIGNhbGxlZCBpbiBib3RoIGNhc2VzLgo+ID4+ID4KPiA+ PiA+WyAzODgwLjU5NzAxNF0gWzxiZjQ0NGFiMD5dIChtdXNiX2dhZGdldF9wdWxsdXAgW211c2Jf aGRyY10pIGZyb20KPiA+PiA+WzxiZjQwMmNiYz5dICh1c2JfZ2FkZ2V0X2Rpc2Nvbm5lY3QrMHgz Yy8weGY0IFt1ZGNfY29yZV0pCj4gPj4gPlsgMzg4MC42MDc5NTldIFs8YmY0MDJjYmM+XSAodXNi X2dhZGdldF9kaXNjb25uZWN0IFt1ZGNfY29yZV0pCj4gPj4gPmZyb20gWzxiZjQwM2IyOD5dICh1 c2JfZ2FkZ2V0X3JlbW92ZV9kcml2ZXIrMHg0Yy8weDkwIFt1ZGNfY29yZV0pCj4gPj4gPlsgMzg4 MC42MTkzMzhdIFs8YmY0MDNiMjg+XSAodXNiX2dhZGdldF9yZW1vdmVfZHJpdmVyIFt1ZGNfY29y ZV0pCj4gPj4gPmZyb20gWzxiZjQwM2QyMD5dICh1c2JfZGVsX2dhZGdldF91ZGMrMHg1Yy8weGMw IFt1ZGNfY29yZV0pCj4gPj4KPiA+PiBJbiBteSBjYXNlIHRoaXMgc3RvcHMgaGVyZSwgdXNiX2Rl bF9nYWRnZXRfdWRjKCkgZG9lcyBub3QgY2FsbAo+ID4+IHVzYl9nYWRnZXRfcmVtb3ZlX2RyaXZl cigpLCB0aGF0J3Mgd2h5IHRoZSBwdWxsdXAgaXMgbmV2ZXIgZGlzYWJsZWQuCj4gPj4KPiA+PiBJ IGd1ZXNzIHRoYXQncyBiZWNhdXNlIHVkYy0+ZHJpdmVyIGlzIE5VTEw7IEknbSB0ZXN0aW5nIHdp dGgKPiA+Cj4gPnRoZW4gdGhlIHB1bGx1cCBzaG91bGQgYmUgZGlzYWJsZSBieSBub3cuCj4gPgo+ ID4+IENPTkZJR19VU0JfQ09ORklHRlMsCj4gPj4gYW5kIEkgZG9uJ3QgY29uZmlndXJlIGFueXRo aW5nIGluIHN5c2ZzIGJlZm9yZSB1bmJpbmRpbmcgdGhlIGRyaXZlci4KPiA+Cj4gPkkgZGlkbid0 IGNoZWNrIG9uIHRoaXMsIGJ1dCBJIGNvdWxkIGltYWdpbmUgdGhhdAo+ID4tIHdoZW4gYSBjb25m aWdmcyBnYWRnZXQgaXMgYm91bmQgdG8gdGhlIHVkYywgLnB1bGx1cCgpIGlzIGNhbGxlZDsKPiA+ LSB3aGVuIHRoZSBjb25maWdmcyBnYWRnZXQgaXMgdW5ib3VuZCBmcm9tIHRoZSB1ZGMsIC5wdWxs dXAgc2hvdWxkIGJlCj4gPiAgY2FsbGVkIGFnYWluIHRvIGRpc2FibGUgdGhlIHB1bGx1cC4KPiAK PiBBbiBpbXBvcnRhbnQgdGhpbmcgdGhhdCBJIGRpZCBub3QgbWVudGlvbiwgaXMgdGhhdCB0aGUg U29DIGJvb3RzCj4gZnJvbSBVU0IsCj4gc28gdGhlIHB1bGx1cCBpcyBhY3RpdmUgYmVmb3JlIHRo ZSBtdXNiIGRyaXZlciBsb2Fkcy4gU2luY2UgaW4gbXkgY2FzZSBhCgpJdCBzb3VuZHMgdG8gbWUg dGhhdCB0aGUgbXVzYiBkcml2ZXIgc2hvdWxkIGRpc2FibGUgdGhlIHB1bGx1cCBkdXJpbmcKaW5p dC4gIElzbid0IGl0PwoKPiBjb25maWdmcyBnYWRnZXQgaXMgbmV2ZXIgYm91bmQsIHRoZW4gLnB1 bGx1cCgpIGlzIG5ldmVyIGNhbGxlZCwgYW5kIHdoZW4KPiBJIHVuYmluZCB0aGUgZHJpdmVyIHRo ZSBwdWxsdXAgaXMgc3RpbGwgZW5hYmxlZC4KClJlZ2FyZHMsCi1CaW4uCg== 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,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 582E7C4360F for ; Wed, 3 Apr 2019 15:47:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1F27F206BA for ; Wed, 3 Apr 2019 15:47:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="GZhXroXS" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726585AbfDCPrB (ORCPT ); Wed, 3 Apr 2019 11:47:01 -0400 Received: from fllv0015.ext.ti.com ([198.47.19.141]:50964 "EHLO fllv0015.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725990AbfDCPrB (ORCPT ); Wed, 3 Apr 2019 11:47:01 -0400 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id x33FksBY006711; Wed, 3 Apr 2019 10:46:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1554306414; bh=1SxRNBxXqrGOtmIugPdYV1xoiQbhgHjw6Z3uheGLN0M=; h=Date:From:To:CC:Subject:References:In-Reply-To; b=GZhXroXSkIwGPRUd2WxD35UEHVZwcGvE61vXpMJ7O0/3T/VIjbuFO6keo+tnEj/hH +8joeF2wN4CXgaMLsYwVdf14eSbq9j41qtaMHBdMR5bo/ZnQrCwHO3oKBuadAeWrd1 X5DantRXzgdyqTAjFnbUe4uUqBVkjugaZAmNRwTU= 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 x33Fkskb076745 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 3 Apr 2019 10:46:54 -0500 Received: from DLEE113.ent.ti.com (157.170.170.24) 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 10:46:54 -0500 Received: from fllv0039.itg.ti.com (10.64.41.19) by DLEE113.ent.ti.com (157.170.170.24) 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 10:46:54 -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 x33FksNF023012; Wed, 3 Apr 2019 10:46:54 -0500 Date: Wed, 3 Apr 2019 10:46:54 -0500 From: Bin Liu To: Paul Cercueil CC: , , Subject: Re: [PATCH] usb: musb: Force-disable pullup on shutdown Message-ID: <20190403154654.GR25852@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> <20190403132600.GQ25852@uda0271908> <1554305491.1177.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: <1554305491.1177.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 Wed, Apr 03, 2019 at 05:31:31PM +0200, Paul Cercueil wrote: > > > Le mer. 3 avril 2019 à 15:26, Bin Liu a écrit : > >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. > > An important thing that I did not mention, is that the SoC boots > from USB, > so the pullup is active before the musb driver loads. Since in my case a It sounds to me that the musb driver should disable the pullup during init. Isn't it? > configfs gadget is never bound, then .pullup() is never called, and when > I unbind the driver the pullup is still enabled. Regards, -Bin.