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: dwc2: Fix endless deferral probe From: Arnd Bergmann Message-Id: Date: Fri, 12 Jan 2018 20:45:55 +0100 To: Mauro Carvalho Chehab Cc: Stefan Wahren , Felipe Balbi , Florian Fainelli , John Youn , Greg Kroah-Hartman , linux-usb@vger.kernel.org, Minas Harutyunyan , Kishon Vijay Abraham I , Eric Anholt , Linux ARM , Hans Verkuil List-ID: T24gRnJpLCBKYW4gMTIsIDIwMTggYXQgNjo1MSBQTSwgTWF1cm8gQ2FydmFsaG8gQ2hlaGFiCjxt Y2hlaGFiQHMtb3BlbnNvdXJjZS5jb20+IHdyb3RlOgo+IEVtIEZyaSwgMTIgSmFuIDIwMTggMTA6 MTg6NTkgKzAxMDAKPiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPiBlc2NyZXZldToKPgo+ PiBPbiBGcmksIEphbiAxMiwgMjAxOCBhdCA5OjA2IEFNLCBTdGVmYW4gV2FocmVuIDxzdGVmYW4u d2FocmVuQGkyc2UuY29tPiB3cm90ZToKPj4gPiBBbSAxMi4wMS4yMDE4IHVtIDAwOjMyIHNjaHJp ZWIgQXJuZCBCZXJnbWFubjoKPj4gPj4gT24gV2VkLCBKYW4gMTAsIDIwMTggYXQgMToxNSBQTSwg U3RlZmFuIFdhaHJlbiA8c3RlZmFuLndhaHJlbkBpMnNlLmNvbT4KPj4KPj4gPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGh5L3BoeS1jb3JlLmMgYi9kcml2ZXJzL3BoeS9waHktY29yZS5jCj4+ID4+ IGluZGV4IGI0OTY0YjA2N2FlYy4uOTNiNTVmYjcxZDU0IDEwMDY0NAo+PiA+PiAtLS0gYS9kcml2 ZXJzL3BoeS9waHktY29yZS5jCj4+ID4+ICsrKyBiL2RyaXZlcnMvcGh5L3BoeS1jb3JlLmMKPj4g Pj4gQEAgLTQxMCw2ICs0MTAsMTAgQEAgc3RhdGljIHN0cnVjdCBwaHkgKl9vZl9waHlfZ2V0KHN0 cnVjdCBkZXZpY2Vfbm9kZQo+PiA+PiAqbnAsIGludCBpbmRleCkKPj4gPj4gICAgICAgICAgaWYg KHJldCkKPj4gPj4gICAgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKPj4g Pj4KPj4gPj4gKyAgICAgICAvKiBUaGlzIHBoeSB0eXBlIGhhbmRsZWQgYnkgdGhlIHVzYi1waHkg c3Vic3lzdGVtIGZvciBub3cgKi8KPj4gPj4gKyAgICAgICBpZiAob2ZfZGV2aWNlX2lzX2NvbXBh dGlibGUobnAsICJ1c2Itbm9wLXhjZWl2IikpCj4+ID4+ICsgICAgICAgICAgICAgICByZXR1cm4g RVJSX1BUUigtRU5PREVWKTsKPj4gPj4gKwo+PiA+PiAgICAgICAgICBtdXRleF9sb2NrKCZwaHlf cHJvdmlkZXJfbXV0ZXgpOwo+PiA+PiAgICAgICAgICBwaHlfcHJvdmlkZXIgPSBvZl9waHlfcHJv dmlkZXJfbG9va3VwKGFyZ3MubnApOwo+PiA+PiAgICAgICAgICBpZiAoSVNfRVJSKHBoeV9wcm92 aWRlcikgfHwgIXRyeV9tb2R1bGVfZ2V0KHBoeV9wcm92aWRlci0+b3duZXIpKQo+PiA+PiB7Cj4+ ID4KPj4gPgo+PiA+IEkgdHJpZWQgdGhpcywgYnV0IGl0IGRvZXNuJ3Qgd29yay4gIm5wIiBpcyB0 aGUgbm9kZSBvZiB0aGUgVVNCIGNvbnRyb2xsZXIsCj4+ID4gbm90IG9mIHRoZSBwaHk/Cj4+Cj4+ IENvcnJlY3QsIHRoYXQgd2FzIGEgcmVhbGx5IGR1bWIgbWlzdGFrZSBvbiBteSBlbmQsIEknbSBn bGFkIEkgYXNrZWQKPj4geW91IHRvIHRyeSBpdCBmaXJzdC4KPj4KPj4gSSdsbCBmaXggaXQgdXAg YW5kIHNlbmQgdGhlIHJpZ2h0IHZlcnNpb24gd2l0aCBhIHByb3BlciBjaGFuZ2Vsb2cgcmlnaHQg YXdheS4KPgo+IEkgc3VzcGVjdCB5b3UgbWVhbnQgdG8gZG8sIGluc3RlYWQ6Cj4KPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL3BoeS9waHktY29yZS5jIGIvZHJpdmVycy9waHkvcGh5LWNvcmUuYwo+ IGluZGV4IGI0OTY0YjA2N2FlYy4uNTg0Y2MxNDY5ZjdkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv cGh5L3BoeS1jb3JlLmMKPiArKysgYi9kcml2ZXJzL3BoeS9waHktY29yZS5jCj4gQEAgLTQxMCw2 ICs0MTAsMTAgQEAgc3RhdGljIHN0cnVjdCBwaHkgKl9vZl9waHlfZ2V0KHN0cnVjdCBkZXZpY2Vf bm9kZSAqbnAsIGludCBpbmRleCkKPiAgICAgICAgIGlmIChyZXQpCj4gICAgICAgICAgICAgICAg IHJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwo+Cj4gKyAgICAgICAvKiBUaGlzIHBoeSB0eXBlIGhh bmRsZWQgYnkgdGhlIHVzYi1waHkgc3Vic3lzdGVtIGZvciBub3cgKi8KPiArICAgICAgIGlmIChv Zl9kZXZpY2VfaXNfY29tcGF0aWJsZShhcmdzLm5wLCAidXNiLW5vcC14Y2VpdiIpKQo+ICsgICAg ICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKPiArCj4gICAgICAgICBtdXRleF9s b2NrKCZwaHlfcHJvdmlkZXJfbXV0ZXgpOwo+ICAgICAgICAgcGh5X3Byb3ZpZGVyID0gb2ZfcGh5 X3Byb3ZpZGVyX2xvb2t1cChhcmdzLm5wKTsKPiAgICAgICAgIGlmIChJU19FUlIocGh5X3Byb3Zp ZGVyKSB8fCAhdHJ5X21vZHVsZV9nZXQocGh5X3Byb3ZpZGVyLT5vd25lcikpIHsKPgo+Cj4gKGUu IGcuIGFyZ3MubnAsIGluc3RlYWQgb2YgbnApLgo+Cj4gVGhlIGFib3ZlIHdvcmtzIGZvciBtZSBv biBSUGkzOgo+Cj4gJCB1bmFtZSAtYQo+IExpbnV4IHJhc3BiZXJyeXBpIDQuMTUuMC1yYzctbWNj KyAjMjggU01QIEZyaSBKYW4gMTIgMTI6MzU6MTkgRVNUIDIwMTggYXJtdjdsIEdOVS9MaW51eAo+ Cj4gJCBsc3VzYgo+IEJ1cyAwMDEgRGV2aWNlIDAwNTogSUQgMDQ1ZTowNzUwIE1pY3Jvc29mdCBD b3JwLiBXaXJlZCBLZXlib2FyZCA2MDAKPiBCdXMgMDAxIERldmljZSAwMDQ6IElEIDA1NzI6OTYw YyBDb25leGFudCBTeXN0ZW1zIChSb2Nrd2VsbCksIEluYy4gRFZCU2t5IFM5NjBDIERWQi1TMiB0 dW5lcgo+IEJ1cyAwMDEgRGV2aWNlIDAwMzogSUQgMDQyNDplYzAwIFN0YW5kYXJkIE1pY3Jvc3lz dGVtcyBDb3JwLiBTTVNDOTUxMi85NTE0IEZhc3QgRXRoZXJuZXQgQWRhcHRlcgo+IEJ1cyAwMDEg RGV2aWNlIDAwMjogSUQgMDQyNDo5NTE0IFN0YW5kYXJkIE1pY3Jvc3lzdGVtcyBDb3JwLiBTTUM5 NTE0IEh1Ygo+IEJ1cyAwMDEgRGV2aWNlIDAwMTogSUQgMWQ2YjowMDAyIExpbnV4IEZvdW5kYXRp b24gMi4wIHJvb3QgaHViCj4KPiBTbywgaWYgeW91IGNoYW5nZSBucCAtPiBhcmdzLm5wLCBmZWVs IGZyZWUgdG8gYWRkIG15Ogo+Cj4gVGVzdGVkLWJ5OiBNYXVybyBDYXJ2YWxobyBDaGVoYWIgPG1j aGVoYWJAcy1vcGVuc291cmNlLmNvbT4KClRoYW5rcyBhIGxvdCBmb3IgdGVzdGluZywgYXJncy5u cCBpcyB3aGF0IHRoZSB2ZXJzaW9uIEkgc2VudCB0b2RheSBoYXMgYWZ0ZXIKU3RlZmFuIHBvaW50 ZWQgb3V0IHRoZSBtaXN0YWtlIGVhcmxpZXIuCgogICAgICAgICBBcm5kCi0tLQpUbyB1bnN1YnNj cmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtdXNi IiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpN b3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1p bmZvLmh0bWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnd@arndb.de (Arnd Bergmann) Date: Fri, 12 Jan 2018 20:45:55 +0100 Subject: [PATCH] usb: dwc2: Fix endless deferral probe In-Reply-To: <20180112155107.39b9d765@vento.lan> References: <1515526134-2148-1-git-send-email-stefan.wahren@i2se.com> <7ef21b99-67c8-b246-cc9a-b7202264a7a0@i2se.com> <277384ef-b30c-fb5a-5ffe-1efc15c500bb@i2se.com> <20180112155107.39b9d765@vento.lan> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Jan 12, 2018 at 6:51 PM, Mauro Carvalho Chehab wrote: > Em Fri, 12 Jan 2018 10:18:59 +0100 > Arnd Bergmann escreveu: > >> On Fri, Jan 12, 2018 at 9:06 AM, Stefan Wahren wrote: >> > Am 12.01.2018 um 00:32 schrieb Arnd Bergmann: >> >> On Wed, Jan 10, 2018 at 1:15 PM, Stefan Wahren >> >> >> diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c >> >> index b4964b067aec..93b55fb71d54 100644 >> >> --- a/drivers/phy/phy-core.c >> >> +++ b/drivers/phy/phy-core.c >> >> @@ -410,6 +410,10 @@ static struct phy *_of_phy_get(struct device_node >> >> *np, int index) >> >> if (ret) >> >> return ERR_PTR(-ENODEV); >> >> >> >> + /* This phy type handled by the usb-phy subsystem for now */ >> >> + if (of_device_is_compatible(np, "usb-nop-xceiv")) >> >> + return ERR_PTR(-ENODEV); >> >> + >> >> mutex_lock(&phy_provider_mutex); >> >> phy_provider = of_phy_provider_lookup(args.np); >> >> if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) >> >> { >> > >> > >> > I tried this, but it doesn't work. "np" is the node of the USB controller, >> > not of the phy? >> >> Correct, that was a really dumb mistake on my end, I'm glad I asked >> you to try it first. >> >> I'll fix it up and send the right version with a proper changelog right away. > > I suspect you meant to do, instead: > > > diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c > index b4964b067aec..584cc1469f7d 100644 > --- a/drivers/phy/phy-core.c > +++ b/drivers/phy/phy-core.c > @@ -410,6 +410,10 @@ static struct phy *_of_phy_get(struct device_node *np, int index) > if (ret) > return ERR_PTR(-ENODEV); > > + /* This phy type handled by the usb-phy subsystem for now */ > + if (of_device_is_compatible(args.np, "usb-nop-xceiv")) > + return ERR_PTR(-ENODEV); > + > mutex_lock(&phy_provider_mutex); > phy_provider = of_phy_provider_lookup(args.np); > if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) { > > > (e. g. args.np, instead of np). > > The above works for me on RPi3: > > $ uname -a > Linux raspberrypi 4.15.0-rc7-mcc+ #28 SMP Fri Jan 12 12:35:19 EST 2018 armv7l GNU/Linux > > $ lsusb > Bus 001 Device 005: ID 045e:0750 Microsoft Corp. Wired Keyboard 600 > Bus 001 Device 004: ID 0572:960c Conexant Systems (Rockwell), Inc. DVBSky S960C DVB-S2 tuner > Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter > Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub > Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub > > So, if you change np -> args.np, feel free to add my: > > Tested-by: Mauro Carvalho Chehab Thanks a lot for testing, args.np is what the version I sent today has after Stefan pointed out the mistake earlier. Arnd