Lines Matching full:front
174 void __intel_fb_invalidate(struct intel_frontbuffer *front, in __intel_fb_invalidate() argument
178 struct intel_display *display = to_intel_display(front->obj->dev); in __intel_fb_invalidate()
196 void __intel_fb_flush(struct intel_frontbuffer *front, in __intel_fb_flush() argument
200 struct intel_display *display = to_intel_display(front->obj->dev); in __intel_fb_flush()
217 struct intel_frontbuffer *front = in intel_frontbuffer_flush_work() local
220 intel_bo_flush_if_display(front->obj); in intel_frontbuffer_flush_work()
221 intel_frontbuffer_flush(front, ORIGIN_DIRTYFB); in intel_frontbuffer_flush_work()
222 intel_frontbuffer_put(front); in intel_frontbuffer_flush_work()
227 * @front: GEM object to flush
232 void intel_frontbuffer_queue_flush(struct intel_frontbuffer *front) in intel_frontbuffer_queue_flush() argument
234 if (!front) in intel_frontbuffer_queue_flush()
237 kref_get(&front->ref); in intel_frontbuffer_queue_flush()
238 if (!schedule_work(&front->flush_work)) in intel_frontbuffer_queue_flush()
239 intel_frontbuffer_put(front); in intel_frontbuffer_queue_flush()
244 struct intel_frontbuffer *front = in frontbuffer_active() local
245 container_of(ref, typeof(*front), write); in frontbuffer_active()
247 kref_get(&front->ref); in frontbuffer_active()
253 struct intel_frontbuffer *front = in frontbuffer_retire() local
254 container_of(ref, typeof(*front), write); in frontbuffer_retire()
256 intel_frontbuffer_flush(front, ORIGIN_CS); in frontbuffer_retire()
257 intel_frontbuffer_put(front); in frontbuffer_retire()
261 __releases(&to_intel_display(front->obj->dev)->fb_tracking.lock) in frontbuffer_release()
263 struct intel_frontbuffer *ret, *front = in frontbuffer_release() local
264 container_of(ref, typeof(*front), ref); in frontbuffer_release()
265 struct drm_gem_object *obj = front->obj; in frontbuffer_release()
268 drm_WARN_ON(display->drm, atomic_read(&front->bits)); in frontbuffer_release()
276 i915_active_fini(&front->write); in frontbuffer_release()
277 kfree_rcu(front, rcu); in frontbuffer_release()
284 struct intel_frontbuffer *front, *cur; in intel_frontbuffer_get() local
286 front = intel_bo_get_frontbuffer(obj); in intel_frontbuffer_get()
287 if (front) in intel_frontbuffer_get()
288 return front; in intel_frontbuffer_get()
290 front = kmalloc(sizeof(*front), GFP_KERNEL); in intel_frontbuffer_get()
291 if (!front) in intel_frontbuffer_get()
294 front->obj = obj; in intel_frontbuffer_get()
295 kref_init(&front->ref); in intel_frontbuffer_get()
296 atomic_set(&front->bits, 0); in intel_frontbuffer_get()
297 i915_active_init(&front->write, in intel_frontbuffer_get()
301 INIT_WORK(&front->flush_work, intel_frontbuffer_flush_work); in intel_frontbuffer_get()
304 cur = intel_bo_set_frontbuffer(obj, front); in intel_frontbuffer_get()
306 if (cur != front) in intel_frontbuffer_get()
307 kfree(front); in intel_frontbuffer_get()
311 void intel_frontbuffer_put(struct intel_frontbuffer *front) in intel_frontbuffer_put() argument
313 kref_put_lock(&front->ref, in intel_frontbuffer_put()
315 &to_intel_display(front->obj->dev)->fb_tracking.lock); in intel_frontbuffer_put()