kernel_samsung_a53x/Documentation
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
..
ABI driver core: Move the "removable" attribute from USB to core 2024-11-18 12:11:13 +01:00
accounting Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
admin-guide kernel: sched: Provide more PELT half-life options 2024-11-17 17:41:17 +01:00
arm Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
arm64 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
block Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bpf Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cdrom Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
core-api Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpu-freq Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
crypto Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dev-tools Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
device-mapper Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
devicetree Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
doc-guide Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
driver-api Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fault-injection Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fb Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
features Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
filesystems Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
firmware-guide Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
firmware_class Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fpga Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gpu Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hid Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hwmon Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ia64 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ide Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
iio Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
infiniband Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
input Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isdn Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kbuild Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kernel-hacking Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
leds Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
litmus-tests Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
livepatch Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
locking Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
m68k Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
maintainer Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mhi Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mips Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
misc-devices Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netlabel Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
networking net: change accept_ra_min_rtr_lft to affect all RA lifetimes 2024-11-08 11:25:47 +01:00
nios2 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nvdimm Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
openrisc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
parisc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
PCI Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pcmcia Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
power Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
powerpc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
process overflow: Implement size_t saturating arithmetic helpers 2024-11-18 11:42:47 +01:00
RCU Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
riscv Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
s390 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
scheduler Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
scsi Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
security Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sound Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sparc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sphinx Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sphinx-static Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
spi Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
staging Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
target Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
timers Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
trace Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
translations Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
usb Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
userspace-api Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
virt Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vm Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
w1 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
watchdog Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
x86 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xtensa Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
asm-annotations.rst Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
atomic_bitops.txt Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
atomic_t.txt Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Changes Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
CodingStyle Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
conf.py Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
COPYING-logo Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
docutils.conf Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dontdiff Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
index.rst Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
logo.gif Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memory-barriers.txt Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
SubmittingPatches Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
watch_queue.rst Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00