From fab29ebaa62cfae9f56a7a108b35d17e4d2a16cd Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Mon, 9 May 2022 20:16:22 -0500 Subject: [PATCH] Add support to set autosuspend delay via hwdb (cherry picked from commit fa9a43a6905187195c9e86a61a906647726c3e55) Related: #2087778 --- hwdb.d/60-autosuspend.hwdb | 4 ++++ hwdb.d/parse_hwdb.py | 1 + rules.d/60-autosuspend.rules | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/hwdb.d/60-autosuspend.hwdb b/hwdb.d/60-autosuspend.hwdb index 1b6c1e1c8f..323611d000 100644 --- a/hwdb.d/60-autosuspend.hwdb +++ b/hwdb.d/60-autosuspend.hwdb @@ -24,8 +24,12 @@ # # Allowed properties are: # ID_AUTOSUSPEND=1 +# ID_AUTOSUSPEND_DELAY_MS=#### # ID_PERSIST=0 # +# ID_AUTOSUSPEND_DELAY_MS adjusts the delay for autosuspend to something +# different than the kernel default of 2000ms. +# # 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 diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py index 93179b675c..7bad559699 100755 --- a/hwdb.d/parse_hwdb.py +++ b/hwdb.d/parse_hwdb.py @@ -135,6 +135,7 @@ def property_grammar(): ('MOUSE_WHEEL_CLICK_COUNT', INTEGER), ('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER), ('ID_AUTOSUSPEND', Or((Literal('0'), Literal('1')))), + ('ID_AUTOSUSPEND_DELAY_MS', INTEGER), ('ID_AV_PRODUCTION_CONTROLLER', Or((Literal('0'), Literal('1')))), ('ID_PERSIST', Or((Literal('0'), Literal('1')))), ('ID_PDA', Or((Literal('0'), Literal('1')))), diff --git a/rules.d/60-autosuspend.rules b/rules.d/60-autosuspend.rules index 332d052caa..ce31a920ed 100644 --- a/rules.d/60-autosuspend.rules +++ b/rules.d/60-autosuspend.rules @@ -15,4 +15,8 @@ ENV{ID_AUTOSUSPEND}=="1", TEST=="power/control", \ ENV{ID_PERSIST}=="0", TEST=="power/persist", \ ATTR{power/persist}="0" +# Set up an autosuspend delay if hwdb say so +ENV{ID_AUTOSUSPEND_DELAY_MS}!="", TEST=="power/control", \ + ATTR{power/autosuspend_delay_ms}="$env{ID_AUTOSUSPEND_DELAY_MS}" + LABEL="autosuspend_end"