• Home
  • Raw
  • Download

Lines Matching refs:drv

46 static inline void __cpuidle_unset_driver(struct cpuidle_driver *drv)  in __cpuidle_unset_driver()  argument
50 for_each_cpu(cpu, drv->cpumask) { in __cpuidle_unset_driver()
52 if (drv != __cpuidle_get_cpu_driver(cpu)) in __cpuidle_unset_driver()
68 static inline int __cpuidle_set_driver(struct cpuidle_driver *drv) in __cpuidle_set_driver() argument
72 for_each_cpu(cpu, drv->cpumask) { in __cpuidle_set_driver()
75 __cpuidle_unset_driver(drv); in __cpuidle_set_driver()
79 per_cpu(cpuidle_drivers, cpu) = drv; in __cpuidle_set_driver()
107 static inline int __cpuidle_set_driver(struct cpuidle_driver *drv) in __cpuidle_set_driver() argument
112 cpuidle_curr_driver = drv; in __cpuidle_set_driver()
124 static inline void __cpuidle_unset_driver(struct cpuidle_driver *drv) in __cpuidle_unset_driver() argument
126 if (drv == cpuidle_curr_driver) in __cpuidle_unset_driver()
154 static void __cpuidle_driver_init(struct cpuidle_driver *drv) in __cpuidle_driver_init() argument
158 drv->refcnt = 0; in __cpuidle_driver_init()
165 if (!drv->cpumask) in __cpuidle_driver_init()
166 drv->cpumask = (struct cpumask *)cpu_possible_mask; in __cpuidle_driver_init()
173 for (i = drv->state_count - 1; i >= 0 ; i--) { in __cpuidle_driver_init()
174 if (drv->states[i].flags & CPUIDLE_FLAG_TIMER_STOP) { in __cpuidle_driver_init()
175 drv->bctimer = 1; in __cpuidle_driver_init()
183 struct cpuidle_driver *drv, int index) in poll_idle() argument
195 static void poll_idle_init(struct cpuidle_driver *drv) in poll_idle_init() argument
197 struct cpuidle_state *state = &drv->states[0]; in poll_idle_init()
209 static void poll_idle_init(struct cpuidle_driver *drv) {} in poll_idle_init() argument
225 static int __cpuidle_register_driver(struct cpuidle_driver *drv) in __cpuidle_register_driver() argument
229 if (!drv || !drv->state_count) in __cpuidle_register_driver()
235 __cpuidle_driver_init(drv); in __cpuidle_register_driver()
237 ret = __cpuidle_set_driver(drv); in __cpuidle_register_driver()
241 if (drv->bctimer) in __cpuidle_register_driver()
242 on_each_cpu_mask(drv->cpumask, cpuidle_setup_broadcast_timer, in __cpuidle_register_driver()
245 poll_idle_init(drv); in __cpuidle_register_driver()
259 static void __cpuidle_unregister_driver(struct cpuidle_driver *drv) in __cpuidle_unregister_driver() argument
261 if (WARN_ON(drv->refcnt > 0)) in __cpuidle_unregister_driver()
264 if (drv->bctimer) { in __cpuidle_unregister_driver()
265 drv->bctimer = 0; in __cpuidle_unregister_driver()
266 on_each_cpu_mask(drv->cpumask, cpuidle_setup_broadcast_timer, in __cpuidle_unregister_driver()
270 __cpuidle_unset_driver(drv); in __cpuidle_unregister_driver()
283 int cpuidle_register_driver(struct cpuidle_driver *drv) in cpuidle_register_driver() argument
288 ret = __cpuidle_register_driver(drv); in cpuidle_register_driver()
303 void cpuidle_unregister_driver(struct cpuidle_driver *drv) in cpuidle_unregister_driver() argument
306 __cpuidle_unregister_driver(drv); in cpuidle_unregister_driver()
318 struct cpuidle_driver *drv; in cpuidle_get_driver() local
322 drv = __cpuidle_get_cpu_driver(cpu); in cpuidle_get_driver()
325 return drv; in cpuidle_get_driver()
355 struct cpuidle_driver *drv; in cpuidle_driver_ref() local
359 drv = cpuidle_get_driver(); in cpuidle_driver_ref()
360 if (drv) in cpuidle_driver_ref()
361 drv->refcnt++; in cpuidle_driver_ref()
364 return drv; in cpuidle_driver_ref()
375 struct cpuidle_driver *drv; in cpuidle_driver_unref() local
379 drv = cpuidle_get_driver(); in cpuidle_driver_unref()
380 if (drv && !WARN_ON(drv->refcnt <= 0)) in cpuidle_driver_unref()
381 drv->refcnt--; in cpuidle_driver_unref()