Thread (19 messages) 19 messages, 7 authors, 2021-10-06

Re: [PATCH 2/2] usb: hub: Mark devices downstream a removable hub, as removable

From: Oliver Neukum <oneukum@suse.com>
Date: 2021-10-06 09:38:17
Also in: lkml

On 05.10.21 21:59, Alan Stern wrote:
On Tue, Oct 05, 2021 at 09:51:02AM -0700, Dmitry Torokhov wrote:
quoted
Hi Alan,

On Tue, Oct 5, 2021 at 7:56 AM Alan Stern [off-list ref] wrote:
quoted
As I understand it, the "removable" property refers specifically to
the device's upstream link, not to whether _any_ of the links leading
from the device to the computer could be removed.
No, that is not what it means. I'll cite our sysfs ABI:

What:           /sys/devices/.../removable
Date:           May 2021
Contact:        Rajat Jain [off-list ref]
Description:
                Information about whether a given device can be removed from the
                platform by the user. This is determined by its subsystem in a
                bus / platform-specific way. This attribute is only present for
                devices that can support determining such information:

                "removable": device can be removed from the platform by the user
                "fixed":     device is fixed to the platform / cannot be removed
                             by the user.
                "unknown":   The information is unavailable / cannot be deduced.

                Currently this is only supported by USB (which infers the
                information from a combination of hub descriptor bits and
                platform-specific data such as ACPI) and PCI (which gets this
                from ACPI / device tree).

It specifically talks about _platform_, not about properties of some
peripheral attached to a system. Note that the wording is very similar
to what we had for USB devices that originally implemented "removable"
attribute:
In that case, shouldn't Rajat's patch change go into the driver core 
rather than the hub driver?  _Every_ device downstream from a 
removable link should count as removable, yes?  Not just the USB 
devices.
In theory yes. If your HC is removable by that logic every device is.
That renders the information content of 'removable' to zero. Everything
is removable.
And to say that the attribute is supported only by USB and PCI is 
misleading, since it applies to every device downstream from a 
removable link.
Exactly and it is a difference. If you know that a device is removable
you must not disable hotplug detection on that port if you want full
functionality. While if you know that a device is not removable you may
straight up cut power, even if the _parent_ is still removable.

The device tree is a tree and if you want to know whether hotplugging
is possible (let's ignore hibernation), you need to walk the tree top to
bottom.

    Regards
        Oliver
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help