File: make-autosuspend-rules.py

package info (click to toggle)
systemd 259-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 105,132 kB
  • sloc: ansic: 726,480; xml: 121,118; python: 36,740; sh: 35,016; cpp: 946; makefile: 273; awk: 102; lisp: 13; sed: 1
file content (24 lines) | stat: -rwxr-xr-x 927 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1-or-later

# Generate autosuspend rules for devices that have been tested to work properly
# with autosuspend by the Chromium OS team. Based on
# https://chromium.googlesource.com/chromiumos/platform2/+/master/power_manager/udev/gen_autosuspend_rules.py

import chromiumos.gen_autosuspend_rules

print('# pci:v<00VENDOR>d<00DEVICE> (8 uppercase hexadecimal digits twice)')
for entry in chromiumos.gen_autosuspend_rules.PCI_IDS:
    vendor, device = entry.split(':')
    vendor = int(vendor, 16)
    device = int(device, 16)
    print(f'pci:v{vendor:08X}d{device:08X}*')

print('# usb:v<VEND>p<PROD> (4 uppercase hexadecimal digits twice)')
for entry in chromiumos.gen_autosuspend_rules.USB_IDS:
    vendor, product = entry.split(':')
    vendor = int(vendor, 16)
    product = int(product, 16)
    print(f'usb:v{vendor:04X}p{product:04X}*')

print(' ID_AUTOSUSPEND=1')