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: =?utf-8?b?TcOlbnMgUnVsbGfDpXJk?= Message-Id: Date: Thu, 28 Feb 2019 15:22:24 +0000 To: Greg Kroah-Hartman Cc: Rob Herring , Mark Rutland , linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: R3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4gd3JpdGVzOgoK PiBPbiBUaHUsIEZlYiAyOCwgMjAxOSBhdCAwMjozMzo0NFBNICswMDAwLCBNYW5zIFJ1bGxnYXJk IHdyb3RlOgo+PiBBZGQgYSBib29sZWFuIHByb3BlcnR5IGluZGljYXRpbmcgdGhhdCBhIGRldmlj ZSBpcyBoYXJkd2lyZWQgdG8gdGhlCj4+IHVwc3RyZWFtIHBvcnQuICBBbHRob3VnaCBodWJzIGNh biBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24sIHRoZXkgYXJlIG5vdAo+PiBhbHdheXMgY29uZmln dXJlZCBjb3JyZWN0bHkuICBBbiBhbHRlcm5hdGUgbWVhbnMgb2YgaW5kaWNhdGluZyB0aGlzIGZv cgo+PiBidWlsdC1pbiBVU0IgZGV2aWNlcyBpcyB0aHVzIHVzZWZ1bC4KPj4gCj4+IFNpZ25lZC1v ZmYtYnk6IE1hbnMgUnVsbGdhcmQgPG1hbnNAbWFuc3IuY29tPgo+PiAtLS0KPj4gSSBoYXZlIGEg c2l0dWF0aW9uIHdoZXJlIHVzZXJzcGFjZSB3b3VsZCBsaWtlIHRvIGtub3cgd2hpY2ggVVNCIGRl dmljZXMKPj4gYXJlIGJ1aWx0LWluLCBidXQgdGhlIG9uLWJvYXJkIGh1YiBkb2Vzbid0IGhhdmUg dGhlIHJpZ2h0IHNldHRpbmcuCj4+IEFsc28sIHRoZSBodWIgaXRzZWxmIGNhbid0IGJlIGluZGlj YXRlZCBhcyBmaXhlZCBpbiBhbnkgb3RoZXIgd2F5IHRoYXQKPj4gSSdtIGF3YXJlIG9mLgo+Cj4g VGhlbiB0aGF0J3MgYSBmaXJtd2FyZSBidWcsIHJpZ2h0PyAgV2UgaGF2ZSBhIHdheSBmb3IgZmly bXdhcmUgdG8gZXhwb3J0Cj4gdGhpcyB0byB0aGUgVVNCIGNvcmUsIHdoeSBub3QgdXNlIHRoYXQ/ ICBZb3VyIG9uLWJvYXJkIGh1YiBzaG91bGQgZ2V0IGEKPiBmaXJtd2FyZSB1cGRhdGUgd2l0aCB0 aGlzIGluZm9ybWF0aW9uLCBsZXQncyBub3QgdHJ5IHRvIGNyZWF0ZQo+IHlldC1hbm90aGVyLXdh eSB0byBkZWZpbmUgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uIHBsZWFzZS4KCldoYXQgZmlybXdh cmU/ICBUaGlzIGlzIG5vdCBhbiBBQ1BJIHN5c3RlbSwgb2J2aW91c2x5LCBzbyBEVCBfaXNfIHRo ZQpmaXJtd2FyZS4KCj4+IEluIGEgd2F5LCBhZGRpbmcgdGhpcyBwcm9wZXJ0eSBzZWVtcyBhIGJp dCBzaWxseSBzaW5jZSBkdCBjYW4gb25seQo+PiBzZW5zaWJseSBiZSB1c2VkIGZvciBoYXJkd2ly ZWQgZGV2aWNlcyBpbiB0aGUgZmlyc3QgcGxhY2UuICBUaHVzIHRoZQo+PiBtZXJlIHByZXNlbmNl IG9mIGEgZHQgbm9kZSBjb3VsZCBiZSB0YWtlbiB0byBpbmRpY2F0ZSB0aGUgc2FtZSB0aGluZy4K Pj4gT24gdGhlIG90aGVyIGhhbmQsIGl0J3MgY29uY2VpdmFibGUgdGhhdCBzb21lb25lIG1pZ2h0 IGR5bmFtaWNhbGx5Cj4+IGdlbmVyYXRlIGEgZGV2aWNldHJlZSBiYXNlZCBvbiB3aGF0IGhhcHBl bnMgdG8gYmUgY29ubmVjdGVkIG9uIGJvb3Qgb3IKPj4gc29tZXRoaW5nLiAgRm9yIHRoYXQgcmVh c29uLCBhbmQgZXhwbGljaXQgcHJvcGVydHkgc2VlbXMgc2FmZXIuCj4+IC0tLQo+PiAgRG9jdW1l bnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3VzYi91c2ItZGV2aWNlLnR4dCB8IDggKysrKysr KysKPj4gIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKPgo+IENhbiB5b3Ugc2hvdyBz b21lIGNvZGUgYWN0dWFsbHkgdXNpbmcgdGhpcz8gIEFnYWluLCB0aGlzIHNob3VsZCAianVzdAo+ IHdvcmsiIGZvciBVU0IgdG9kYXkgdW5sZXNzIHlvdXIgcGxhdGZvcm0gaXMgcmVhbGx5IGJyb2tl biAoYW5kIGlmIGl0IGlzLAo+IGdvIGNvbXBsYWluIHRvIHRoZSB2ZW5kb3IuLi4pCgpZb3Uga25v dyBmdWxsIHdlbGwgdGhhdCBjb21wbGFpbmluZyB0byB0aGUgdmVuZG9yIGlzIHJhcmVseSBzb21l dGhpbmcKdGhhdCB3b3Jrcy4gIEVzcGVjaWFsbHkgbm90IHdoZW4gdGhlcmUgYXJlIGFscmVhZHkg dGhvdXNhbmRzIG9mIHRoZQpkZXZpY2VzIGluIHRoZSBmaWVsZC4KClRoaXMgaXMgaG93IEkgbWVh bnQgdG8gdXNlIGl0OgoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMgYi9kcml2 ZXJzL3VzYi9jb3JlL2h1Yi5jCmluZGV4IDNhZGZmNGRhMmVlMS4uODFlZjNjYjcwNWI3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvaHVi LmMKQEAgLTIzOTIsNiArMjM5MiwxNCBAQCBzdGF0aWMgdm9pZCBzZXRfdXNiX3BvcnRfcmVtb3Zh YmxlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgfQogCisgICAgICAgLyoKKyAgICAgICAgKiBPdGhlcndpc2UsIGNoZWNrIHdoZXRoZXIgRFQg aW5kaWNhdGVzIHRoaXMgZGV2aWNlIGlzIG5vbi1yZW1vdmFibGUuCisgICAgICAgICovCisgICAg ICAgaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9vbCh1ZGV2LT5kZXYub2Zfbm9kZSwgIm5vbi1yZW1v dmFibGUiKSkgeworICAgICAgICAgICAgICAgdWRldi0+cmVtb3ZhYmxlID0gVVNCX0RFVklDRV9G SVhFRDsKKyAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICB9CisKICAgICAgICAvKgogICAg ICAgICAqIE90aGVyd2lzZSwgY2hlY2sgd2hldGhlciB0aGUgaHViIGtub3dzIHdoZXRoZXIgYSBw b3J0IGlzIHJlbW92YWJsZQogICAgICAgICAqIG9yIG5vdAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?iso-8859-1?Q?M=E5ns_Rullg=E5rd?= Subject: Re: [RFC][PATCH] dt-bindings: usb: add non-removable device property Date: Thu, 28 Feb 2019 15:22:24 +0000 Message-ID: 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: In-Reply-To: <20190228151330.GA1360@kroah.com> (Greg Kroah-Hartman's message of "Thu, 28 Feb 2019 16:13:30 +0100") Sender: linux-kernel-owner@vger.kernel.org To: Greg Kroah-Hartman 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 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. >> 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. 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; + } + /* * Otherwise, check whether the hub knows whether a port is removable * or not -- Måns Rullgård