diff options
author | Kevin Hilman <khilman@baylibre.com> | 2024-12-07 01:12:50 +0300 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2024-12-10 14:37:26 +0300 |
commit | b5fc9453651d0aacaf412ae636d1960bd6a4a3d7 (patch) | |
tree | 0b3cb6a61965b64602f348e3b4ac6bdaf7da569b /tools/perf/scripts/python/task-analyzer.py | |
parent | e1a87570347091204d54298ede5f04176c9eeb49 (diff) | |
download | linux-b5fc9453651d0aacaf412ae636d1960bd6a4a3d7.tar.xz |
pmdomain: ti_sci: add per-device latency constraint management
For each device in a TI SCI PM domain, check whether the device has
any resume latency constraints set via per-device PM QoS. If
constraints are set, send them to DM via the new SCI constraints API.
Checking for constraints happen for each device before system-wide
suspend (via ->suspend() hook.)
An important detail here is that the PM domain driver inserts itself
into the path of both the ->suspend() and ->resume() hook path
of *all* devices in the PM domain. This allows generic PM domain code
to handle the constraint management and communication with TI SCI.
Further, this allows device drivers to use existing PM QoS APIs to
add/update constraints.
DM firmware clears constraints during its resume, so Linux has
to check/update/send constraints each time system suspends.
Also note that the PM QoS framework uses usecs as the units for
latency whereas the TI SCI firmware uses msecs, so a conversion is
needed before passing to TI SCI.
Co-developed-by: Vibhore Vardhan <vibhore@ti.com>
Signed-off-by: Vibhore Vardhan <vibhore@ti.com>
Reviewed-by: Markus Schneider-Pargmann <msp@baylibre.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Dhruva Gole <d-gole@ti.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Message-ID: <20241206-lpm-v6-10-constraints-pmdomain-v6-1-833980158c68@baylibre.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions