Lines Matching refs:drv
47 bool cpuidle_not_available(struct cpuidle_driver *drv, in cpuidle_not_available() argument
50 return off || !initialized || !drv || !dev || !dev->enabled; in cpuidle_not_available()
61 struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev); in cpuidle_play_dead() local
64 if (!drv) in cpuidle_play_dead()
68 for (i = drv->state_count - 1; i >= 0; i--) in cpuidle_play_dead()
69 if (drv->states[i].enter_dead) in cpuidle_play_dead()
70 return drv->states[i].enter_dead(dev, i); in cpuidle_play_dead()
75 static int find_deepest_state(struct cpuidle_driver *drv, in find_deepest_state() argument
84 for (i = 0; i < drv->state_count; i++) { in find_deepest_state()
85 struct cpuidle_state *s = &drv->states[i]; in find_deepest_state()
106 int cpuidle_find_deepest_state(struct cpuidle_driver *drv, in cpuidle_find_deepest_state() argument
109 return find_deepest_state(drv, dev, UINT_MAX, 0, false); in cpuidle_find_deepest_state()
112 static void enter_freeze_proper(struct cpuidle_driver *drv, in enter_freeze_proper() argument
127 drv->states[index].enter_freeze(dev, drv, index); in enter_freeze_proper()
146 int cpuidle_enter_freeze(struct cpuidle_driver *drv, struct cpuidle_device *dev) in cpuidle_enter_freeze() argument
155 index = find_deepest_state(drv, dev, UINT_MAX, 0, true); in cpuidle_enter_freeze()
157 enter_freeze_proper(drv, dev, index); in cpuidle_enter_freeze()
169 int cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv, in cpuidle_enter_state() argument
174 struct cpuidle_state *target_state = &drv->states[index]; in cpuidle_enter_state()
185 index = find_deepest_state(drv, dev, target_state->exit_latency, in cpuidle_enter_state()
191 target_state = &drv->states[index]; in cpuidle_enter_state()
201 entered_state = target_state->enter(dev, drv, index); in cpuidle_enter_state()
217 if (!cpuidle_state_is_coupled(drv, index)) in cpuidle_enter_state()
248 int cpuidle_select(struct cpuidle_driver *drv, struct cpuidle_device *dev) in cpuidle_select() argument
250 return cpuidle_curr_governor->select(drv, dev); in cpuidle_select()
263 int cpuidle_enter(struct cpuidle_driver *drv, struct cpuidle_device *dev, in cpuidle_enter() argument
266 if (cpuidle_state_is_coupled(drv, index)) in cpuidle_enter()
267 return cpuidle_enter_state_coupled(dev, drv, index); in cpuidle_enter()
268 return cpuidle_enter_state(dev, drv, index); in cpuidle_enter()
362 struct cpuidle_driver *drv; in cpuidle_enable_device() local
370 drv = cpuidle_get_cpu_driver(dev); in cpuidle_enable_device()
372 if (!drv || !cpuidle_curr_governor) in cpuidle_enable_device()
383 (ret = cpuidle_curr_governor->enable(drv, dev))) in cpuidle_enable_device()
410 struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev); in cpuidle_disable_device() local
415 if (!drv || !cpuidle_curr_governor) in cpuidle_disable_device()
421 cpuidle_curr_governor->disable(drv, dev); in cpuidle_disable_device()
431 struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev); in __cpuidle_unregister_device() local
435 module_put(drv->owner); in __cpuidle_unregister_device()
456 struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev); in __cpuidle_register_device() local
458 if (!try_module_get(drv->owner)) in __cpuidle_register_device()
550 void cpuidle_unregister(struct cpuidle_driver *drv) in cpuidle_unregister() argument
555 for_each_cpu(cpu, drv->cpumask) { in cpuidle_unregister()
560 cpuidle_unregister_driver(drv); in cpuidle_unregister()
575 int cpuidle_register(struct cpuidle_driver *drv, in cpuidle_register() argument
581 ret = cpuidle_register_driver(drv); in cpuidle_register()
587 for_each_cpu(cpu, drv->cpumask) { in cpuidle_register()
606 cpuidle_unregister(drv); in cpuidle_register()