From bd37360a210603cb2c27feb7602008c71ca2ab67 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Wed, 15 Sep 2021 18:37:24 +0200 Subject: 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 --- hwdb.d/60-autosuspend.hwdb | 7 +++++++ hwdb.d/parse_hwdb.py | 1 + 2 files changed, 8 insertions(+) (limited to 'hwdb.d') 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')))), -- cgit v1.2.1