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: Mauro Carvalho Chehab Message-Id: <20180112155107.39b9d765@vento.lan> Date: Fri, 12 Jan 2018 15:51:07 -0200 To: Arnd Bergmann 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: RW0gRnJpLCAxMiBKYW4gMjAxOCAxMDoxODo1OSArMDEwMApBcm5kIEJlcmdtYW5uIDxhcm5kQGFy bmRiLmRlPiBlc2NyZXZldToKCj4gT24gRnJpLCBKYW4gMTIsIDIwMTggYXQgOTowNiBBTSwgU3Rl ZmFuIFdhaHJlbiA8c3RlZmFuLndhaHJlbkBpMnNlLmNvbT4gd3JvdGU6Cj4gPiBBbSAxMi4wMS4y MDE4IHVtIDAwOjMyIHNjaHJpZWIgQXJuZCBCZXJnbWFubjogIAo+ID4+IE9uIFdlZCwgSmFuIDEw LCAyMDE4IGF0IDE6MTUgUE0sIFN0ZWZhbiBXYWhyZW4gPHN0ZWZhbi53YWhyZW5AaTJzZS5jb20+ ICAKPiAKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvcGh5LWNvcmUuYyBiL2RyaXZlcnMv cGh5L3BoeS1jb3JlLmMKPiA+PiBpbmRleCBiNDk2NGIwNjdhZWMuLjkzYjU1ZmI3MWQ1NCAxMDA2 NDQKPiA+PiAtLS0gYS9kcml2ZXJzL3BoeS9waHktY29yZS5jCj4gPj4gKysrIGIvZHJpdmVycy9w aHkvcGh5LWNvcmUuYwo+ID4+IEBAIC00MTAsNiArNDEwLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgcGh5 ICpfb2ZfcGh5X2dldChzdHJ1Y3QgZGV2aWNlX25vZGUKPiA+PiAqbnAsIGludCBpbmRleCkKPiA+ PiAgICAgICAgICBpZiAocmV0KQo+ID4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIo LUVOT0RFVik7Cj4gPj4KPiA+PiArICAgICAgIC8qIFRoaXMgcGh5IHR5cGUgaGFuZGxlZCBieSB0 aGUgdXNiLXBoeSBzdWJzeXN0ZW0gZm9yIG5vdyAqLwo+ID4+ICsgICAgICAgaWYgKG9mX2Rldmlj ZV9pc19jb21wYXRpYmxlKG5wLCAidXNiLW5vcC14Y2VpdiIpKQo+ID4+ICsgICAgICAgICAgICAg ICByZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKPiA+PiArCj4gPj4gICAgICAgICAgbXV0ZXhfbG9j aygmcGh5X3Byb3ZpZGVyX211dGV4KTsKPiA+PiAgICAgICAgICBwaHlfcHJvdmlkZXIgPSBvZl9w aHlfcHJvdmlkZXJfbG9va3VwKGFyZ3MubnApOwo+ID4+ICAgICAgICAgIGlmIChJU19FUlIocGh5 X3Byb3ZpZGVyKSB8fCAhdHJ5X21vZHVsZV9nZXQocGh5X3Byb3ZpZGVyLT5vd25lcikpCj4gPj4g eyAgCj4gPgo+ID4KPiA+IEkgdHJpZWQgdGhpcywgYnV0IGl0IGRvZXNuJ3Qgd29yay4gIm5wIiBp cyB0aGUgbm9kZSBvZiB0aGUgVVNCIGNvbnRyb2xsZXIsCj4gPiBub3Qgb2YgdGhlIHBoeT8gIAo+ IAo+IENvcnJlY3QsIHRoYXQgd2FzIGEgcmVhbGx5IGR1bWIgbWlzdGFrZSBvbiBteSBlbmQsIEkn bSBnbGFkIEkgYXNrZWQKPiB5b3UgdG8gdHJ5IGl0IGZpcnN0Lgo+IAo+IEknbGwgZml4IGl0IHVw IGFuZCBzZW5kIHRoZSByaWdodCB2ZXJzaW9uIHdpdGggYSBwcm9wZXIgY2hhbmdlbG9nIHJpZ2h0 IGF3YXkuCgpJIHN1c3BlY3QgeW91IG1lYW50IHRvIGRvLCBpbnN0ZWFkOgoKCgoKKGUuIGcuIGFy Z3MubnAsIGluc3RlYWQgb2YgbnApLgoKVGhlIGFib3ZlIHdvcmtzIGZvciBtZSBvbiBSUGkzOgoK JCB1bmFtZSAtYQpMaW51eCByYXNwYmVycnlwaSA0LjE1LjAtcmM3LW1jYysgIzI4IFNNUCBGcmkg SmFuIDEyIDEyOjM1OjE5IEVTVCAyMDE4IGFybXY3bCBHTlUvTGludXgKCiQgbHN1c2IKQnVzIDAw MSBEZXZpY2UgMDA1OiBJRCAwNDVlOjA3NTAgTWljcm9zb2Z0IENvcnAuIFdpcmVkIEtleWJvYXJk IDYwMApCdXMgMDAxIERldmljZSAwMDQ6IElEIDA1NzI6OTYwYyBDb25leGFudCBTeXN0ZW1zIChS b2Nrd2VsbCksIEluYy4gRFZCU2t5IFM5NjBDIERWQi1TMiB0dW5lcgpCdXMgMDAxIERldmljZSAw MDM6IElEIDA0MjQ6ZWMwMCBTdGFuZGFyZCBNaWNyb3N5c3RlbXMgQ29ycC4gU01TQzk1MTIvOTUx NCBGYXN0IEV0aGVybmV0IEFkYXB0ZXIKQnVzIDAwMSBEZXZpY2UgMDAyOiBJRCAwNDI0Ojk1MTQg U3RhbmRhcmQgTWljcm9zeXN0ZW1zIENvcnAuIFNNQzk1MTQgSHViCkJ1cyAwMDEgRGV2aWNlIDAw MTogSUQgMWQ2YjowMDAyIExpbnV4IEZvdW5kYXRpb24gMi4wIHJvb3QgaHViCgpTbywgaWYgeW91 IGNoYW5nZSBucCAtPiBhcmdzLm5wLCBmZWVsIGZyZWUgdG8gYWRkIG15OgoKVGVzdGVkLWJ5OiBN YXVybyBDYXJ2YWxobyBDaGVoYWIgPG1jaGVoYWJAcy1vcGVuc291cmNlLmNvbT4KClJlZ2FyZHMs Ck1hdXJvCi0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAi dW5zdWJzY3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jk b21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5r ZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9w aHktY29yZS5jIGIvZHJpdmVycy9waHkvcGh5LWNvcmUuYwppbmRleCBiNDk2NGIwNjdhZWMuLjU4 NGNjMTQ2OWY3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9waHkvcGh5LWNvcmUuYworKysgYi9kcml2 ZXJzL3BoeS9waHktY29yZS5jCkBAIC00MTAsNiArNDEwLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgcGh5 ICpfb2ZfcGh5X2dldChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBpbnQgaW5kZXgpCiAJaWYgKHJl dCkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7CiAKKyAgICAgICAvKiBUaGlzIHBoeSB0eXBl IGhhbmRsZWQgYnkgdGhlIHVzYi1waHkgc3Vic3lzdGVtIGZvciBub3cgKi8KKyAgICAgICBpZiAo b2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoYXJncy5ucCwgInVzYi1ub3AteGNlaXYiKSkKKwkJcmV0 dXJuIEVSUl9QVFIoLUVOT0RFVik7CisKIAltdXRleF9sb2NrKCZwaHlfcHJvdmlkZXJfbXV0ZXgp OwogCXBoeV9wcm92aWRlciA9IG9mX3BoeV9wcm92aWRlcl9sb29rdXAoYXJncy5ucCk7CiAJaWYg KElTX0VSUihwaHlfcHJvdmlkZXIpIHx8ICF0cnlfbW9kdWxlX2dldChwaHlfcHJvdmlkZXItPm93 bmVyKSkgewo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: mchehab@s-opensource.com (Mauro Carvalho Chehab) Date: Fri, 12 Jan 2018 15:51:07 -0200 Subject: [PATCH] usb: dwc2: Fix endless deferral probe In-Reply-To: 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> Message-ID: <20180112155107.39b9d765@vento.lan> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 Regards, Mauro