diff options
author | Benjamin Berg <bberg@redhat.com> | 2021-09-15 18:37:24 +0200 |
---|---|---|
committer | Benjamin Berg <bberg@redhat.com> | 2021-09-21 20:28:10 +0200 |
commit | bd37360a210603cb2c27feb7602008c71ca2ab67 (patch) | |
tree | 49dc751f33417e5e3dcc6e41739563f0048a0ef4 /hwdb.d | |
parent | 7e99216c1dde13097ffda370064dd29d4dfd87cb (diff) | |
download | systemd-bd37360a210603cb2c27feb7602008c71ca2ab67.tar.gz |
hwdb: Permit unsetting power/persist for USB devices
The USB persist feature allows devices that can retain their state when
powered down to work across suspend/resume. This is in particular useful
for USB drives.
However, the persist feature can get in the way for devices that are
unable to retain their state when power is lost. An example of such
stateful devices are fingerprint readers where USB persist should be
disabled to ensure userspace can detect whether the USB device had a
power loss during system suspend.
This will initially be used by the libfprint autosuspend hwdb.
Closes: #20754
Diffstat (limited to 'hwdb.d')
-rw-r--r-- | hwdb.d/60-autosuspend.hwdb | 7 | ||||
-rwxr-xr-x | hwdb.d/parse_hwdb.py | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/hwdb.d/60-autosuspend.hwdb b/hwdb.d/60-autosuspend.hwdb index 15dcc2f1ee..e9304f440d 100644 --- a/hwdb.d/60-autosuspend.hwdb +++ b/hwdb.d/60-autosuspend.hwdb @@ -24,6 +24,13 @@ # # Allowed properties are: # ID_AUTOSUSPEND=1 +# ID_PERSIST=0 +# +# ID_PERSIST=0 allows disabling the kernels USB "persist" feature, which allows +# the continued use of devices after a power loss (due to suspend). Disable it +# if the device will loose state without a USB power session and the driver +# is unable to recover the state when resuming. See +# https://www.kernel.org/doc/html/latest/driver-api/usb/persist.html # Sort by brand, model diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py index dea71acfe9..f385e52628 100755 --- a/hwdb.d/parse_hwdb.py +++ b/hwdb.d/parse_hwdb.py @@ -134,6 +134,7 @@ def property_grammar(): ('MOUSE_WHEEL_CLICK_COUNT', INTEGER), ('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER), ('ID_AUTOSUSPEND', Or((Literal('0'), Literal('1')))), + ('ID_PERSIST', Or((Literal('0'), Literal('1')))), ('ID_INPUT', Or((Literal('0'), Literal('1')))), ('ID_INPUT_ACCELEROMETER', Or((Literal('0'), Literal('1')))), ('ID_INPUT_JOYSTICK', Or((Literal('0'), Literal('1')))), |