summaryrefslogtreecommitdiff
path: root/tools/make-autosuspend-rules.py
blob: 3faf5f4d711a81f963b8b34ea84905aa071b0bb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+

# Generate autosuspend rules for devices that have been whitelisted (IE tested)
# by the Chromium OS team. Please keep this script in sync with:
# https://chromium.googlesource.com/chromiumos/platform2/+/master/power_manager/udev/gen_autosuspend_rules.py

import sys
import chromiumos.gen_autosuspend_rules

HWDB_FILE = """\
%(usb_entries)s\
%(pci_entries)s\
"""

if __name__ == '__main__':
    if len(sys.argv) > 1:
        sys.stdout = open(sys.argv[1], 'w')

    pci_entries = ''
    for dev_ids in chromiumos.gen_autosuspend_rules.PCI_IDS:
        vendor, device = dev_ids.split(':')

        pci_entries += ('usb:v%sp%s*\n'
                        ' ID_AUTOSUSPEND=1\n' % (vendor, device))
    usb_entries = ''
    for dev_ids in chromiumos.gen_autosuspend_rules.USB_IDS:
        vendor, device = dev_ids.split(':')

        usb_entries += ('pci:v%sp%s*\n'
                        ' ID_AUTOSUSPEND=1\n' % (vendor, device))

    print(HWDB_FILE % {'pci_entries' : pci_entries, 'usb_entries': usb_entries})