Lines Matching refs:clflush
31 struct clflush { struct
55 struct clflush *clflush = container_of(fence, typeof(*clflush), dma); in i915_clflush_release() local
57 i915_sw_fence_fini(&clflush->wait); in i915_clflush_release()
59 BUILD_BUG_ON(offsetof(typeof(*clflush), dma)); in i915_clflush_release()
60 dma_fence_free(&clflush->dma); in i915_clflush_release()
80 struct clflush *clflush = container_of(work, typeof(*clflush), work); in i915_clflush_work() local
81 struct drm_i915_gem_object *obj = clflush->obj; in i915_clflush_work()
95 dma_fence_signal(&clflush->dma); in i915_clflush_work()
96 dma_fence_put(&clflush->dma); in i915_clflush_work()
103 struct clflush *clflush = container_of(fence, typeof(*clflush), wait); in i915_clflush_notify() local
107 schedule_work(&clflush->work); in i915_clflush_notify()
111 dma_fence_put(&clflush->dma); in i915_clflush_notify()
121 struct clflush *clflush; in i915_gem_clflush_object() local
149 clflush = NULL; in i915_gem_clflush_object()
151 clflush = kmalloc(sizeof(*clflush), GFP_KERNEL); in i915_gem_clflush_object()
152 if (clflush) { in i915_gem_clflush_object()
155 dma_fence_init(&clflush->dma, in i915_gem_clflush_object()
160 i915_sw_fence_init(&clflush->wait, i915_clflush_notify); in i915_gem_clflush_object()
162 clflush->obj = i915_gem_object_get(obj); in i915_gem_clflush_object()
163 INIT_WORK(&clflush->work, i915_clflush_work); in i915_gem_clflush_object()
165 dma_fence_get(&clflush->dma); in i915_gem_clflush_object()
167 i915_sw_fence_await_reservation(&clflush->wait, in i915_gem_clflush_object()
173 reservation_object_add_excl_fence(obj->resv, &clflush->dma); in i915_gem_clflush_object()
176 i915_sw_fence_commit(&clflush->wait); in i915_gem_clflush_object()