summaryrefslogtreecommitdiff
path: root/tools/make-autosuspend-rules.py
Commit message (Collapse)AuthorAgeFilesLines
* license: LGPL-2.1+ -> LGPL-2.1-or-laterYu Watanabe2020-11-091-1/+1
|
* Partially revert "hwdb: add trailing ":*" everywhere"Zbigniew Jędrzejewski-Szmek2020-11-031-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c0443b97b71d5f70a0622061f589307bec5502c6. I got various cases wrong: "usb:v04F3p2B7Cd5912dc00dsc00dp00ic03isc00ip00in00" "usb:v0627p0001:QEMU USB Tablet" "input:b0003v0627p0001e0001-e0,1,2,4,k110,111,112,r0,1,8,B,am4,lsfw" OTOH: -evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnASUSTeKComputerInc.:pnN53SV:* +evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnASUSTeKComputerInc.:pnN53SV* is OK. Other parts follow after 'pn'. -mouse:*:name:*Trackball*:* -mouse:*:name:*trackball*:* -mouse:*:name:*TrackBall*:* +mouse:*:name:*Trackball*: +mouse:*:name:*trackball*: +mouse:*:name:*TrackBall*: ... and anything else with :name should be OK too, because our imports always include ":" at the end: IMPORT{builtin}="hwdb 'joystick:$env{ID_BUS}:v$attr{id/vendor}p$attr{id/product}:name:$attr{name}:'" Including '*' at the end makes the pattern work even if we decide to add something to the match string later. Fixes #17499.
* hwdb: add trailing ":*" everywhereZbigniew Jędrzejewski-Szmek2020-10-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No functional change is intended. The general pattern of changes: -usb:v04F3p2B7C* +usb:v04F3p2B7C:* This is mostly a clarification, to make the part that makes the usb vXXXXpYYYY part visually separated. It would only make a difference if we added further keys with a different number of digits, which is unlikely. -usb:v0627p0001:*QEMU USB Keyboard* -usb:v0627p0001:*QEMU USB Mouse* -usb:v0627p0001:*QEMU USB Tablet* +usb:v0627p0001:*QEMU USB Keyboard*:* +usb:v0627p0001:*QEMU USB Mouse*:* +usb:v0627p0001:*QEMU USB Tablet*:* Again, only a clarification. We know that ":" will appear somewhere later in the match key, so anything that matches "…Keyboard*" will also match "…Keyboard*:*". -evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnASUSTeKComputerInc.:pnN53SV* +evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnASUSTeKComputerInc.:pnN53SV:* This makes the match narrower. Previously we would match product "N53SV" and "N53SV2", "N53SV3", and others. Here we are saying that the ':pn' part must match exactly. Most of the changes in this patch match this pattern. I made a few judgement calls and used "pn…*:*" when I wasn't sure if the full pn is included: -evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision* +evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:* -evdev:name:Cypress APA Trackpad ?cyapa?:dmi:*:svnHewlett-Packard*:pnFalco*: +evdev:name:Cypress APA Trackpad ?cyapa?:dmi:*:svnHewlett-Packard*:pnFalco*:* This more like the "QEMU" example above, since all dmi strings end in ":", so anything which matches the old version will also match the new version. -evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGateway*:pnA0A1*:pvr* +evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGateway*:pnA0A1*:* I replaced trailing ":pvr*" by ":*". This makes no functional difference because we expect "pvr" to always appear in the dmi string. This makes patterns shorter. -evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn* +evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*:* OTOH, ":pn*" is kept. This is because almost patterns include ":pn*", and if we skip it, we should make it clear that this is on purpose, that we really want to match any product name. The python script to generate autosuspend rules is updated to use ":*" too. Inspired by https://github.com/systemd/systemd/pull/17281#discussion_r501489750.
* hwdb/autosuspend: add missing parenthesisZbigniew Jędrzejewski-Szmek2020-07-161-1/+1
|
* make-autosuspend-rules: restore compatibility with Python3 < 3.6Luca Boccassi2020-06-231-2/+2
| | | | | | | | | | | | | | | | | The f'...' format was introduced in Python 3.6 ( https://www.python.org/dev/peps/pep-0498/ ) and returns an error when systemd is built on a system with an older Python3 version: <...> File /home/bluca/git/systemd/tools/make-autosuspend-rules.py, line 15 print(f'pci:v{vendor:08X}d{device:08X}*') ^ SyntaxError: invalid syntax [2/388] Generating version.h with a custom command. ninja: build stopped: subcommand failed. $ python3 --version Python 3.5.6 Use an older format to keep backward compatibility.
* make-autosuspend-rules: remove one instance of "whitelist"Zbigniew Jędrzejewski-Szmek2020-06-221-2/+2
| | | | | Let's be clear what we mean exactly. Also see https://lwn.net/Articles/823224/ for general justification.
* tools: rewrite make-autosuspend-rules.py and add udev rulesZbigniew Jędrzejewski-Szmek2020-06-221-25/+16
| | | | | | | | | | | Concatenating strings is not a very efficient approach. And in this case fully unnecessary. We also need some rules to make use of those hwdb entries. PCI needs to be 8 characters, not 4. And we need to use uppercase hexadecimal for both. With udev rules this made no difference, but hwdb match is case sensitive. Fixes #16119.
* hwdb: generate a hwdb file instead of rules for autosuspendLennart Poettering2020-06-131-1/+20
|
* trivial: rename chromeos to chromiumosTim Teichmann2019-10-071-3/+3
|
* rules: Add automatic suspend udev rulesMario Limonciello2019-10-041-0/+14
The ChromeOS ecosystem has a large amount of testing, both automated and manual across devices including measurement of power regressions. It's safe to assume that any of these devices will handle USB auto-suspend appropriately. Use the script from ChromeOS https://chromium.googlesource.com/chromiumos/platform2/+/master/power_manager/udev/gen_autosuspend_rules.py to generate udev rules at build time. This script in systemd `tools/chromeos/gen_autosuspend_rules.py` should be kept in sync with the ChromeOS version of the script. Manually added autosuspend devices should be placed in the new template `rules/61-autosuspend-manual.rules` Suggested-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>