Lines Matching refs:p
55 struct pulse *p = container_of(kref, typeof(*p), kref); in pulse_free() local
57 i915_active_fini(&p->active); in pulse_free()
58 kfree(p); in pulse_free()
61 static void pulse_put(struct pulse *p) in pulse_put() argument
63 kref_put(&p->kref, pulse_free); in pulse_put()
73 struct pulse *p; in pulse_create() local
75 p = kmalloc(sizeof(*p), GFP_KERNEL); in pulse_create()
76 if (!p) in pulse_create()
77 return p; in pulse_create()
79 kref_init(&p->kref); in pulse_create()
80 i915_active_init(&p->active, pulse_active, pulse_retire, 0); in pulse_create()
82 return p; in pulse_create()
85 static void pulse_unlock_wait(struct pulse *p) in pulse_unlock_wait() argument
87 i915_active_unlock_wait(&p->active); in pulse_unlock_wait()
93 struct pulse *p; in __live_idle_pulse() local
98 p = pulse_create(); in __live_idle_pulse()
99 if (!p) in __live_idle_pulse()
102 err = i915_active_acquire(&p->active); in __live_idle_pulse()
106 err = i915_active_acquire_preallocate_barrier(&p->active, engine); in __live_idle_pulse()
108 i915_active_release(&p->active); in __live_idle_pulse()
112 i915_active_acquire_barrier(&p->active); in __live_idle_pulse()
113 i915_active_release(&p->active); in __live_idle_pulse()
115 GEM_BUG_ON(i915_active_is_idle(&p->active)); in __live_idle_pulse()
136 pulse_unlock_wait(p); /* synchronize with the retirement callback */ in __live_idle_pulse()
138 if (!i915_active_is_idle(&p->active)) { in __live_idle_pulse()
143 i915_active_print(&p->active, &m); in __live_idle_pulse()
150 pulse_put(p); in __live_idle_pulse()