summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Limonciello <superm1@gmail.com>2022-05-09 20:16:22 -0500
committerMario Limonciello <superm1@gmail.com>2022-05-09 21:14:12 -0500
commitfa9a43a6905187195c9e86a61a906647726c3e55 (patch)
tree2a7f4c1fb20b27ac40a9478a4a724ef7bb7db68e
parent31090c17f48e3184bff2df40ac1a6643f154c84b (diff)
downloadsystemd-fa9a43a6905187195c9e86a61a906647726c3e55.tar.gz
Add support to set autosuspend delay via hwdb
-rw-r--r--hwdb.d/60-autosuspend.hwdb4
-rwxr-xr-xhwdb.d/parse_hwdb.py1
-rw-r--r--rules.d/60-autosuspend.rules4
3 files changed, 9 insertions, 0 deletions
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"