Lines Matching refs:ii_dev

83 static void idle_inject_wakeup(struct idle_inject_device *ii_dev)  in idle_inject_wakeup()  argument
88 for_each_cpu_and(cpu, to_cpumask(ii_dev->cpumask), cpu_online_mask) { in idle_inject_wakeup()
108 struct idle_inject_device *ii_dev = in idle_inject_timer_fn() local
111 duration_us = READ_ONCE(ii_dev->run_duration_us); in idle_inject_timer_fn()
112 duration_us += READ_ONCE(ii_dev->idle_duration_us); in idle_inject_timer_fn()
114 idle_inject_wakeup(ii_dev); in idle_inject_timer_fn()
130 struct idle_inject_device *ii_dev; in idle_inject_fn() local
133 ii_dev = per_cpu(idle_inject_device, cpu); in idle_inject_fn()
141 play_idle(READ_ONCE(ii_dev->idle_duration_us)); in idle_inject_fn()
149 void idle_inject_set_duration(struct idle_inject_device *ii_dev, in idle_inject_set_duration() argument
154 WRITE_ONCE(ii_dev->run_duration_us, run_duration_us); in idle_inject_set_duration()
155 WRITE_ONCE(ii_dev->idle_duration_us, idle_duration_us); in idle_inject_set_duration()
164 void idle_inject_get_duration(struct idle_inject_device *ii_dev, in idle_inject_get_duration() argument
168 *run_duration_us = READ_ONCE(ii_dev->run_duration_us); in idle_inject_get_duration()
169 *idle_duration_us = READ_ONCE(ii_dev->idle_duration_us); in idle_inject_get_duration()
182 int idle_inject_start(struct idle_inject_device *ii_dev) in idle_inject_start() argument
184 unsigned int idle_duration_us = READ_ONCE(ii_dev->idle_duration_us); in idle_inject_start()
185 unsigned int run_duration_us = READ_ONCE(ii_dev->run_duration_us); in idle_inject_start()
191 cpumask_pr_args(to_cpumask(ii_dev->cpumask))); in idle_inject_start()
193 idle_inject_wakeup(ii_dev); in idle_inject_start()
195 hrtimer_start(&ii_dev->timer, in idle_inject_start()
214 void idle_inject_stop(struct idle_inject_device *ii_dev) in idle_inject_stop() argument
220 cpumask_pr_args(to_cpumask(ii_dev->cpumask))); in idle_inject_stop()
222 hrtimer_cancel(&ii_dev->timer); in idle_inject_stop()
239 for_each_cpu(cpu, to_cpumask(ii_dev->cpumask)) { in idle_inject_stop()
290 struct idle_inject_device *ii_dev; in idle_inject_register() local
293 ii_dev = kzalloc(sizeof(*ii_dev) + cpumask_size(), GFP_KERNEL); in idle_inject_register()
294 if (!ii_dev) in idle_inject_register()
297 cpumask_copy(to_cpumask(ii_dev->cpumask), cpumask); in idle_inject_register()
298 hrtimer_init(&ii_dev->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); in idle_inject_register()
299 ii_dev->timer.function = idle_inject_timer_fn; in idle_inject_register()
301 for_each_cpu(cpu, to_cpumask(ii_dev->cpumask)) { in idle_inject_register()
308 per_cpu(idle_inject_device, cpu) = ii_dev; in idle_inject_register()
311 return ii_dev; in idle_inject_register()
314 for_each_cpu(cpu_rb, to_cpumask(ii_dev->cpumask)) { in idle_inject_register()
320 kfree(ii_dev); in idle_inject_register()
333 void idle_inject_unregister(struct idle_inject_device *ii_dev) in idle_inject_unregister() argument
337 idle_inject_stop(ii_dev); in idle_inject_unregister()
339 for_each_cpu(cpu, to_cpumask(ii_dev->cpumask)) in idle_inject_unregister()
342 kfree(ii_dev); in idle_inject_unregister()