kernel_samsung_a53x/drivers/base
Rajat Jain 3a0ed2d406 driver core: Move the "removable" attribute from USB to core
[ Upstream commit 70f400d4d957c2453c8689552ff212bc59f88938 ]

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: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Rajat Jain <rajatja@google.com>
Link: https://lore.kernel.org/r/20210524171812.18095-1-rajatja@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stable-dep-of: 432e664e7c98 ("drm/amdgpu: don't use ATRM for external devices")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-18 12:11:13 +01:00
..
firmware_loader Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
power Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
regmap regmap: prevent noinc writes from clobbering cache 2024-11-18 11:43:07 +01:00
test Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
arch_topology.c arch_topology: Rename freq_scale as arch_freq_scale 2024-11-17 17:45:22 +01:00
attribute_container.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
base.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bus.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cacheinfo.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
class.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
component.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
container.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
core.c driver core: Move the "removable" attribute from USB to core 2024-11-18 12:11:13 +01:00
cpu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
devcoredump.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
devres.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
devtmpfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
driver.c driver: platform: Add helper for safer setting of driver_override 2024-11-18 10:58:45 +01:00
firmware.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hypervisor.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
init.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isa.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
map.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memory.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
module.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
node.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pinctrl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
platform-mock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
platform-msi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
platform.c driver: platform: Add helper for safer setting of driver_override 2024-11-18 10:58:45 +01:00
property.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
soc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swnode.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
syscore.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
topology.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
transport_class.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00