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: [RFC] dt-bindings: usb: add non-removable device property From: Greg Kroah-Hartman Message-Id: <20190228155241.GC12050@kroah.com> Date: Thu, 28 Feb 2019 16:52:41 +0100 To: =?iso-8859-1?Q?M=E5ns_Rullg=E5rd?= Cc: Rob Herring , Mark Rutland , linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: T24gVGh1LCBGZWIgMjgsIDIwMTkgYXQgMDM6MjI6MjRQTSArMDAwMCwgTcOlbnMgUnVsbGfDpXJk IHdyb3RlOgo+IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+ IHdyaXRlczoKPiAKPiA+IE9uIFRodSwgRmViIDI4LCAyMDE5IGF0IDAyOjMzOjQ0UE0gKzAwMDAs IE1hbnMgUnVsbGdhcmQgd3JvdGU6Cj4gPj4gQWRkIGEgYm9vbGVhbiBwcm9wZXJ0eSBpbmRpY2F0 aW5nIHRoYXQgYSBkZXZpY2UgaXMgaGFyZHdpcmVkIHRvIHRoZQo+ID4+IHVwc3RyZWFtIHBvcnQu ICBBbHRob3VnaCBodWJzIGNhbiBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24sIHRoZXkgYXJlIG5v dAo+ID4+IGFsd2F5cyBjb25maWd1cmVkIGNvcnJlY3RseS4gIEFuIGFsdGVybmF0ZSBtZWFucyBv ZiBpbmRpY2F0aW5nIHRoaXMgZm9yCj4gPj4gYnVpbHQtaW4gVVNCIGRldmljZXMgaXMgdGh1cyB1 c2VmdWwuCj4gPj4gCj4gPj4gU2lnbmVkLW9mZi1ieTogTWFucyBSdWxsZ2FyZCA8bWFuc0BtYW5z ci5jb20+Cj4gPj4gLS0tCj4gPj4gSSBoYXZlIGEgc2l0dWF0aW9uIHdoZXJlIHVzZXJzcGFjZSB3 b3VsZCBsaWtlIHRvIGtub3cgd2hpY2ggVVNCIGRldmljZXMKPiA+PiBhcmUgYnVpbHQtaW4sIGJ1 dCB0aGUgb24tYm9hcmQgaHViIGRvZXNuJ3QgaGF2ZSB0aGUgcmlnaHQgc2V0dGluZy4KPiA+PiBB bHNvLCB0aGUgaHViIGl0c2VsZiBjYW4ndCBiZSBpbmRpY2F0ZWQgYXMgZml4ZWQgaW4gYW55IG90 aGVyIHdheSB0aGF0Cj4gPj4gSSdtIGF3YXJlIG9mLgo+ID4KPiA+IFRoZW4gdGhhdCdzIGEgZmly bXdhcmUgYnVnLCByaWdodD8gIFdlIGhhdmUgYSB3YXkgZm9yIGZpcm13YXJlIHRvIGV4cG9ydAo+ ID4gdGhpcyB0byB0aGUgVVNCIGNvcmUsIHdoeSBub3QgdXNlIHRoYXQ/ICBZb3VyIG9uLWJvYXJk IGh1YiBzaG91bGQgZ2V0IGEKPiA+IGZpcm13YXJlIHVwZGF0ZSB3aXRoIHRoaXMgaW5mb3JtYXRp b24sIGxldCdzIG5vdCB0cnkgdG8gY3JlYXRlCj4gPiB5ZXQtYW5vdGhlci13YXkgdG8gZGVmaW5l IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbiBwbGVhc2UuCj4gCj4gV2hhdCBmaXJtd2FyZT8gIFRo aXMgaXMgbm90IGFuIEFDUEkgc3lzdGVtLCBvYnZpb3VzbHksIHNvIERUIF9pc18gdGhlCj4gZmly bXdhcmUuCgpGaXJtd2FyZSBpbiB5b3VyIGh1Yi4gIFRoZXJlJ3MgYSB3aG9sZSBjcmF6eSBzb2Z0 d2FyZSBzdGFjayBpbiB0aGF0CmJlYXN0IDopCgo+ID4+IEluIGEgd2F5LCBhZGRpbmcgdGhpcyBw cm9wZXJ0eSBzZWVtcyBhIGJpdCBzaWxseSBzaW5jZSBkdCBjYW4gb25seQo+ID4+IHNlbnNpYmx5 IGJlIHVzZWQgZm9yIGhhcmR3aXJlZCBkZXZpY2VzIGluIHRoZSBmaXJzdCBwbGFjZS4gIFRodXMg dGhlCj4gPj4gbWVyZSBwcmVzZW5jZSBvZiBhIGR0IG5vZGUgY291bGQgYmUgdGFrZW4gdG8gaW5k aWNhdGUgdGhlIHNhbWUgdGhpbmcuCj4gPj4gT24gdGhlIG90aGVyIGhhbmQsIGl0J3MgY29uY2Vp dmFibGUgdGhhdCBzb21lb25lIG1pZ2h0IGR5bmFtaWNhbGx5Cj4gPj4gZ2VuZXJhdGUgYSBkZXZp Y2V0cmVlIGJhc2VkIG9uIHdoYXQgaGFwcGVucyB0byBiZSBjb25uZWN0ZWQgb24gYm9vdCBvcgo+ ID4+IHNvbWV0aGluZy4gIEZvciB0aGF0IHJlYXNvbiwgYW5kIGV4cGxpY2l0IHByb3BlcnR5IHNl ZW1zIHNhZmVyLgo+ID4+IC0tLQo+ID4+ICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvdXNiL3VzYi1kZXZpY2UudHh0IHwgOCArKysrKysrKwo+ID4+ICAxIGZpbGUgY2hhbmdlZCwg OCBpbnNlcnRpb25zKCspCj4gPgo+ID4gQ2FuIHlvdSBzaG93IHNvbWUgY29kZSBhY3R1YWxseSB1 c2luZyB0aGlzPyAgQWdhaW4sIHRoaXMgc2hvdWxkICJqdXN0Cj4gPiB3b3JrIiBmb3IgVVNCIHRv ZGF5IHVubGVzcyB5b3VyIHBsYXRmb3JtIGlzIHJlYWxseSBicm9rZW4gKGFuZCBpZiBpdCBpcywK PiA+IGdvIGNvbXBsYWluIHRvIHRoZSB2ZW5kb3IuLi4pCj4gCj4gWW91IGtub3cgZnVsbCB3ZWxs IHRoYXQgY29tcGxhaW5pbmcgdG8gdGhlIHZlbmRvciBpcyByYXJlbHkgc29tZXRoaW5nCj4gdGhh dCB3b3Jrcy4gIEVzcGVjaWFsbHkgbm90IHdoZW4gdGhlcmUgYXJlIGFscmVhZHkgdGhvdXNhbmRz IG9mIHRoZQo+IGRldmljZXMgaW4gdGhlIGZpZWxkLgoKVW5kZXJzdG9vZCwgYnV0IGNvbnN0YW50 bHkgd29ya2luZyBhcm91bmQgYnJva2VuIGhhcmR3YXJlIGlzIGFubm95aW5nIGF0CnRpbWVzLgoK PiBUaGlzIGlzIGhvdyBJIG1lYW50IHRvIHVzZSBpdDoKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2IvY29yZS9odWIuYyBiL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMKPiBpbmRleCAzYWRmZjRk YTJlZTEuLjgxZWYzY2I3MDViNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5j Cj4gKysrIGIvZHJpdmVycy91c2IvY29yZS9odWIuYwo+IEBAIC0yMzkyLDYgKzIzOTIsMTQgQEAg c3RhdGljIHZvaWQgc2V0X3VzYl9wb3J0X3JlbW92YWJsZShzdHJ1Y3QgdXNiX2RldmljZSAqdWRl dikKPiAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICB9Cj4gIAo+ICsgICAgICAgLyoK PiArICAgICAgICAqIE90aGVyd2lzZSwgY2hlY2sgd2hldGhlciBEVCBpbmRpY2F0ZXMgdGhpcyBk ZXZpY2UgaXMgbm9uLXJlbW92YWJsZS4KPiArICAgICAgICAqLwo+ICsgICAgICAgaWYgKG9mX3By b3BlcnR5X3JlYWRfYm9vbCh1ZGV2LT5kZXYub2Zfbm9kZSwgIm5vbi1yZW1vdmFibGUiKSkgewo+ ICsgICAgICAgICAgICAgICB1ZGV2LT5yZW1vdmFibGUgPSBVU0JfREVWSUNFX0ZJWEVEOwo+ICsg ICAgICAgICAgICAgICByZXR1cm47Cj4gKyAgICAgICB9CgpTaG91bGRuJ3QgdGhpcyBiZSBhbiBh dHRyaWJ1dGUgb2YgdGhlIFVTQiBodWIncyBwb3J0LCBub3QgdGhlIGRldmljZQppdHNlbGY/ICBU aGF0J3MgdGhlIHdheSBpdCB3b3JrcyB3aXRoIEFDUEksIGFuZCBvZGRzIGFyZSBhbnkgZGVzY3Jp cHRpb24Kb2YgVVNCIGRldmljZXMgaW4gRFQgaXMgYWxzbyBnb2luZyB0byBsb29rIG11Y2ggbGlr ZSBob3cgQUNQSSBkZXNjcmliZXMKdGhlIGRldmljZXMsIGxldCdzIG5vdCB0cnkgdG8gZGl2ZXJn ZSB3aGVuIGl0IGlzIG5vdCBuZWNlc3NhcnkuCgp0aGFua3MsCgpncmVnIGstaAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Kroah-Hartman Subject: Re: [RFC][PATCH] dt-bindings: usb: add non-removable device property Date: Thu, 28 Feb 2019 16:52:41 +0100 Message-ID: <20190228155241.GC12050@kroah.com> References: <20190228143344.16312-1-mans@mansr.com> <20190228151330.GA1360@kroah.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: =?iso-8859-1?Q?M=E5ns_Rullg=E5rd?= Cc: Rob Herring , Mark Rutland , linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: devicetree@vger.kernel.org On Thu, Feb 28, 2019 at 03:22:24PM +0000, Måns Rullgård wrote: > Greg Kroah-Hartman writes: > > > On Thu, Feb 28, 2019 at 02:33:44PM +0000, Mans Rullgard wrote: > >> Add a boolean property indicating that a device is hardwired to the > >> upstream port. Although hubs can provide this information, they are not > >> always configured correctly. An alternate means of indicating this for > >> built-in USB devices is thus useful. > >> > >> Signed-off-by: Mans Rullgard > >> --- > >> I have a situation where userspace would like to know which USB devices > >> are built-in, but the on-board hub doesn't have the right setting. > >> Also, the hub itself can't be indicated as fixed in any other way that > >> I'm aware of. > > > > Then that's a firmware bug, right? We have a way for firmware to export > > this to the USB core, why not use that? Your on-board hub should get a > > firmware update with this information, let's not try to create > > yet-another-way to define this type of information please. > > What firmware? This is not an ACPI system, obviously, so DT _is_ the > firmware. Firmware in your hub. There's a whole crazy software stack in that beast :) > >> In a way, adding this property seems a bit silly since dt can only > >> sensibly be used for hardwired devices in the first place. Thus the > >> mere presence of a dt node could be taken to indicate the same thing. > >> On the other hand, it's conceivable that someone might dynamically > >> generate a devicetree based on what happens to be connected on boot or > >> something. For that reason, and explicit property seems safer. > >> --- > >> Documentation/devicetree/bindings/usb/usb-device.txt | 8 ++++++++ > >> 1 file changed, 8 insertions(+) > > > > Can you show some code actually using this? Again, this should "just > > work" for USB today unless your platform is really broken (and if it is, > > go complain to the vendor...) > > You know full well that complaining to the vendor is rarely something > that works. Especially not when there are already thousands of the > devices in the field. Understood, but constantly working around broken hardware is annoying at times. > This is how I meant to use it: > > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > index 3adff4da2ee1..81ef3cb705b7 100644 > --- a/drivers/usb/core/hub.c > +++ b/drivers/usb/core/hub.c > @@ -2392,6 +2392,14 @@ static void set_usb_port_removable(struct usb_device *udev) > break; > } > > + /* > + * Otherwise, check whether DT indicates this device is non-removable. > + */ > + if (of_property_read_bool(udev->dev.of_node, "non-removable")) { > + udev->removable = USB_DEVICE_FIXED; > + return; > + } Shouldn't this be an attribute of the USB hub's port, not the device itself? That's the way it works with ACPI, and odds are any description of USB devices in DT is also going to look much like how ACPI describes the devices, let's not try to diverge when it is not necessary. thanks, greg k-h