Lines Matching full:front

168 void __intel_fb_invalidate(struct intel_frontbuffer *front,  in __intel_fb_invalidate()  argument
172 struct drm_i915_private *i915 = intel_bo_to_i915(front->obj); in __intel_fb_invalidate()
189 void __intel_fb_flush(struct intel_frontbuffer *front, in __intel_fb_flush() argument
193 struct drm_i915_private *i915 = intel_bo_to_i915(front->obj); in __intel_fb_flush()
209 struct intel_frontbuffer *front = in intel_frontbuffer_flush_work() local
212 i915_gem_object_flush_if_display(front->obj); in intel_frontbuffer_flush_work()
213 intel_frontbuffer_flush(front, ORIGIN_DIRTYFB); in intel_frontbuffer_flush_work()
214 intel_frontbuffer_put(front); in intel_frontbuffer_flush_work()
219 * @front: GEM object to flush
224 void intel_frontbuffer_queue_flush(struct intel_frontbuffer *front) in intel_frontbuffer_queue_flush() argument
226 if (!front) in intel_frontbuffer_queue_flush()
229 kref_get(&front->ref); in intel_frontbuffer_queue_flush()
230 if (!schedule_work(&front->flush_work)) in intel_frontbuffer_queue_flush()
231 intel_frontbuffer_put(front); in intel_frontbuffer_queue_flush()
236 struct intel_frontbuffer *front = in frontbuffer_active() local
237 container_of(ref, typeof(*front), write); in frontbuffer_active()
239 kref_get(&front->ref); in frontbuffer_active()
245 struct intel_frontbuffer *front = in frontbuffer_retire() local
246 container_of(ref, typeof(*front), write); in frontbuffer_retire()
248 intel_frontbuffer_flush(front, ORIGIN_CS); in frontbuffer_retire()
249 intel_frontbuffer_put(front); in frontbuffer_retire()
253 __releases(&intel_bo_to_i915(front->obj)->display.fb_tracking.lock) in frontbuffer_release()
255 struct intel_frontbuffer *ret, *front = in frontbuffer_release() local
256 container_of(ref, typeof(*front), ref); in frontbuffer_release()
257 struct drm_i915_gem_object *obj = front->obj; in frontbuffer_release()
259 drm_WARN_ON(&intel_bo_to_i915(obj)->drm, atomic_read(&front->bits)); in frontbuffer_release()
267 i915_active_fini(&front->write); in frontbuffer_release()
268 kfree_rcu(front, rcu); in frontbuffer_release()
275 struct intel_frontbuffer *front, *cur; in intel_frontbuffer_get() local
277 front = i915_gem_object_get_frontbuffer(obj); in intel_frontbuffer_get()
278 if (front) in intel_frontbuffer_get()
279 return front; in intel_frontbuffer_get()
281 front = kmalloc(sizeof(*front), GFP_KERNEL); in intel_frontbuffer_get()
282 if (!front) in intel_frontbuffer_get()
285 front->obj = obj; in intel_frontbuffer_get()
286 kref_init(&front->ref); in intel_frontbuffer_get()
287 atomic_set(&front->bits, 0); in intel_frontbuffer_get()
288 i915_active_init(&front->write, in intel_frontbuffer_get()
292 INIT_WORK(&front->flush_work, intel_frontbuffer_flush_work); in intel_frontbuffer_get()
295 cur = i915_gem_object_set_frontbuffer(obj, front); in intel_frontbuffer_get()
297 if (cur != front) in intel_frontbuffer_get()
298 kfree(front); in intel_frontbuffer_get()
302 void intel_frontbuffer_put(struct intel_frontbuffer *front) in intel_frontbuffer_put() argument
304 kref_put_lock(&front->ref, in intel_frontbuffer_put()
306 &intel_bo_to_i915(front->obj)->display.fb_tracking.lock); in intel_frontbuffer_put()