188763a5cSDaniel Lezcano /* SPDX-License-Identifier: GPL-2.0 */ 288763a5cSDaniel Lezcano /* 388763a5cSDaniel Lezcano * Copyright (C) 2018 Linaro Ltd 488763a5cSDaniel Lezcano * 588763a5cSDaniel Lezcano * Author: Daniel Lezcano <[email protected]> 688763a5cSDaniel Lezcano * 788763a5cSDaniel Lezcano */ 888763a5cSDaniel Lezcano #ifndef __IDLE_INJECT_H__ 988763a5cSDaniel Lezcano #define __IDLE_INJECT_H__ 1088763a5cSDaniel Lezcano 1188763a5cSDaniel Lezcano /* private idle injection device structure */ 1288763a5cSDaniel Lezcano struct idle_inject_device; 1388763a5cSDaniel Lezcano 1488763a5cSDaniel Lezcano struct idle_inject_device *idle_inject_register(struct cpumask *cpumask); 1588763a5cSDaniel Lezcano 1688763a5cSDaniel Lezcano void idle_inject_unregister(struct idle_inject_device *ii_dev); 1788763a5cSDaniel Lezcano 1888763a5cSDaniel Lezcano int idle_inject_start(struct idle_inject_device *ii_dev); 1988763a5cSDaniel Lezcano 2088763a5cSDaniel Lezcano void idle_inject_stop(struct idle_inject_device *ii_dev); 2188763a5cSDaniel Lezcano 2288763a5cSDaniel Lezcano void idle_inject_set_duration(struct idle_inject_device *ii_dev, 23*cd4c0763SDaniel Lezcano unsigned int run_duration_us, 24*cd4c0763SDaniel Lezcano unsigned int idle_duration_us); 2588763a5cSDaniel Lezcano 2688763a5cSDaniel Lezcano void idle_inject_get_duration(struct idle_inject_device *ii_dev, 27*cd4c0763SDaniel Lezcano unsigned int *run_duration_us, 28*cd4c0763SDaniel Lezcano unsigned int *idle_duration_us); 2988763a5cSDaniel Lezcano #endif /* __IDLE_INJECT_H__ */ 30