Lines Matching refs:front

167 void __intel_fb_invalidate(struct intel_frontbuffer *front,  in __intel_fb_invalidate()  argument
171 struct drm_i915_private *i915 = to_i915(front->obj->base.dev); in __intel_fb_invalidate()
188 void __intel_fb_flush(struct intel_frontbuffer *front, in __intel_fb_flush() argument
192 struct drm_i915_private *i915 = to_i915(front->obj->base.dev); in __intel_fb_flush()
208 struct intel_frontbuffer *front = in frontbuffer_active() local
209 container_of(ref, typeof(*front), write); in frontbuffer_active()
211 kref_get(&front->ref); in frontbuffer_active()
217 struct intel_frontbuffer *front = in frontbuffer_retire() local
218 container_of(ref, typeof(*front), write); in frontbuffer_retire()
220 intel_frontbuffer_flush(front, ORIGIN_CS); in frontbuffer_retire()
221 intel_frontbuffer_put(front); in frontbuffer_retire()
225 __releases(&to_i915(front->obj->base.dev)->fb_tracking.lock) in frontbuffer_release()
227 struct intel_frontbuffer *front = in frontbuffer_release() local
228 container_of(ref, typeof(*front), ref); in frontbuffer_release()
229 struct drm_i915_gem_object *obj = front->obj; in frontbuffer_release()
232 drm_WARN_ON(obj->base.dev, atomic_read(&front->bits)); in frontbuffer_release()
244 i915_active_fini(&front->write); in frontbuffer_release()
247 kfree_rcu(front, rcu); in frontbuffer_release()
254 struct intel_frontbuffer *front; in intel_frontbuffer_get() local
256 front = __intel_frontbuffer_get(obj); in intel_frontbuffer_get()
257 if (front) in intel_frontbuffer_get()
258 return front; in intel_frontbuffer_get()
260 front = kmalloc(sizeof(*front), GFP_KERNEL); in intel_frontbuffer_get()
261 if (!front) in intel_frontbuffer_get()
264 front->obj = obj; in intel_frontbuffer_get()
265 kref_init(&front->ref); in intel_frontbuffer_get()
266 atomic_set(&front->bits, 0); in intel_frontbuffer_get()
267 i915_active_init(&front->write, in intel_frontbuffer_get()
274 kfree(front); in intel_frontbuffer_get()
275 front = rcu_dereference_protected(obj->frontbuffer, true); in intel_frontbuffer_get()
276 kref_get(&front->ref); in intel_frontbuffer_get()
279 rcu_assign_pointer(obj->frontbuffer, front); in intel_frontbuffer_get()
283 return front; in intel_frontbuffer_get()
286 void intel_frontbuffer_put(struct intel_frontbuffer *front) in intel_frontbuffer_put() argument
288 kref_put_lock(&front->ref, in intel_frontbuffer_put()
290 &to_i915(front->obj->base.dev)->fb_tracking.lock); in intel_frontbuffer_put()