blob: fb88e23a99d3d97d77cfbf81def3c662208a8b7e [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) 2018 Linaro Ltd
4 *
5 * Author: Daniel Lezcano <daniel.lezcano@linaro.org>
6 *
7 */
8#ifndef __IDLE_INJECT_H__
9#define __IDLE_INJECT_H__
10
11/* private idle injection device structure */
12struct idle_inject_device;
13
14struct idle_inject_device *idle_inject_register(struct cpumask *cpumask);
15
16void idle_inject_unregister(struct idle_inject_device *ii_dev);
17
18int idle_inject_start(struct idle_inject_device *ii_dev);
19
20void idle_inject_stop(struct idle_inject_device *ii_dev);
21
22void idle_inject_set_duration(struct idle_inject_device *ii_dev,
David Brazdil0f672f62019-12-10 10:32:29 +000023 unsigned int run_duration_us,
24 unsigned int idle_duration_us);
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000025
26void idle_inject_get_duration(struct idle_inject_device *ii_dev,
David Brazdil0f672f62019-12-10 10:32:29 +000027 unsigned int *run_duration_us,
28 unsigned int *idle_duration_us);
Olivier Deprez157378f2022-04-04 15:47:50 +020029
30void idle_inject_set_latency(struct idle_inject_device *ii_dev,
31 unsigned int latency_us);
32
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000033#endif /* __IDLE_INJECT_H__ */