• Rajat Jain's avatar
    driver core: Move the "removable" attribute from USB to core · 70f400d4
    Rajat Jain authored
    Move the "removable" attribute from USB to core in order to allow it to be
    supported by other subsystem / buses. Individual buses that want to support
    this attribute can populate the removable property of the device while
    enumerating it with the 3 possible values -
     - "unknown"
     - "fixed"
     - "removable"
    Leaving the field unchanged (i.e. "not supported") would mean that the
    attribute would not show up in sysfs for that device. The UAPI (location,
    symantics etc) for the attribute remains unchanged.
    
    Move the "removable" attribute from USB to the device core so it can be
    used by other subsystems / buses.
    
    By default, devices do not have a "removable" attribute in sysfs.
    
    If a subsystem or bus driver wants to support a "removable" attribute, it
    should call device_set_removable() before calling device_register() or
    device_add(), e.g.:
    
        device_set_removable(dev, DEVICE_REMOVABLE);
        device_register(dev);
    
    The possible values and the resulting sysfs attribute contents are:
    
        DEVICE_REMOVABLE_UNKNOWN  ->  "unknown"
        DEVICE_REMOVABLE          ->  "removable"
        DEVICE_FIXED              ->  "fixed"
    
    Convert the USB "removable" attribute to use this new device core
    functionality.  There should be no user-visible change in the location or
    semantics of attribute for USB devices.
    Reviewed-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: default avatarRajat Jain <rajatja@google.com>
    Link: https://lore.kernel.org/r/20210524171812.18095-1-rajatja@google.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    70f400d4
sysfs.c 31.2 KB