Lines Matching refs:wf
32 int (*get)(struct intel_wakeref *wf);
33 int (*put)(struct intel_wakeref *wf);
53 void __intel_wakeref_init(struct intel_wakeref *wf,
57 #define intel_wakeref_init(wf, rpm, ops) do { \ argument
60 __intel_wakeref_init((wf), (rpm), (ops), &__key); \
63 int __intel_wakeref_get_first(struct intel_wakeref *wf);
64 void __intel_wakeref_put_last(struct intel_wakeref *wf, unsigned long flags);
82 intel_wakeref_get(struct intel_wakeref *wf) in intel_wakeref_get() argument
85 if (unlikely(!atomic_inc_not_zero(&wf->count))) in intel_wakeref_get()
86 return __intel_wakeref_get_first(wf); in intel_wakeref_get()
101 __intel_wakeref_get(struct intel_wakeref *wf) in __intel_wakeref_get() argument
103 INTEL_WAKEREF_BUG_ON(atomic_read(&wf->count) <= 0); in __intel_wakeref_get()
104 atomic_inc(&wf->count); in __intel_wakeref_get()
117 intel_wakeref_get_if_active(struct intel_wakeref *wf) in intel_wakeref_get_if_active() argument
119 return atomic_inc_not_zero(&wf->count); in intel_wakeref_get_if_active()
128 intel_wakeref_might_get(struct intel_wakeref *wf) in intel_wakeref_might_get() argument
130 might_lock(&wf->mutex); in intel_wakeref_might_get()
147 __intel_wakeref_put(struct intel_wakeref *wf, unsigned long flags) in __intel_wakeref_put() argument
152 INTEL_WAKEREF_BUG_ON(atomic_read(&wf->count) <= 0); in __intel_wakeref_put()
153 if (unlikely(!atomic_add_unless(&wf->count, -1, 1))) in __intel_wakeref_put()
154 __intel_wakeref_put_last(wf, flags); in __intel_wakeref_put()
158 intel_wakeref_put(struct intel_wakeref *wf) in intel_wakeref_put() argument
161 __intel_wakeref_put(wf, 0); in intel_wakeref_put()
165 intel_wakeref_put_async(struct intel_wakeref *wf) in intel_wakeref_put_async() argument
167 __intel_wakeref_put(wf, INTEL_WAKEREF_PUT_ASYNC); in intel_wakeref_put_async()
171 intel_wakeref_put_delay(struct intel_wakeref *wf, unsigned long delay) in intel_wakeref_put_delay() argument
173 __intel_wakeref_put(wf, in intel_wakeref_put_delay()
179 intel_wakeref_might_put(struct intel_wakeref *wf) in intel_wakeref_might_put() argument
181 might_lock(&wf->mutex); in intel_wakeref_might_put()
193 intel_wakeref_lock(struct intel_wakeref *wf) in intel_wakeref_lock() argument
194 __acquires(wf->mutex) in intel_wakeref_lock()
196 mutex_lock(&wf->mutex); in intel_wakeref_lock()
206 intel_wakeref_unlock(struct intel_wakeref *wf) in intel_wakeref_unlock() argument
207 __releases(wf->mutex) in intel_wakeref_unlock()
209 mutex_unlock(&wf->mutex); in intel_wakeref_unlock()
220 intel_wakeref_unlock_wait(struct intel_wakeref *wf) in intel_wakeref_unlock_wait() argument
222 mutex_lock(&wf->mutex); in intel_wakeref_unlock_wait()
223 mutex_unlock(&wf->mutex); in intel_wakeref_unlock_wait()
224 flush_delayed_work(&wf->work); in intel_wakeref_unlock_wait()
234 intel_wakeref_is_active(const struct intel_wakeref *wf) in intel_wakeref_is_active() argument
236 return READ_ONCE(wf->wakeref); in intel_wakeref_is_active()
244 __intel_wakeref_defer_park(struct intel_wakeref *wf) in __intel_wakeref_defer_park() argument
246 lockdep_assert_held(&wf->mutex); in __intel_wakeref_defer_park()
247 INTEL_WAKEREF_BUG_ON(atomic_read(&wf->count)); in __intel_wakeref_defer_park()
248 atomic_set_release(&wf->count, 1); in __intel_wakeref_defer_park()
262 int intel_wakeref_wait_for_idle(struct intel_wakeref *wf);
287 void intel_wakeref_auto(struct intel_wakeref_auto *wf, unsigned long timeout);
289 void intel_wakeref_auto_init(struct intel_wakeref_auto *wf,
291 void intel_wakeref_auto_fini(struct intel_wakeref_auto *wf);