Lines Matching refs:gc
197 static int guc_ring_doorbell(struct i915_guc_client *gc) in guc_ring_doorbell() argument
205 base = kmap_atomic(i915_gem_object_get_page(gc->client_obj, 0)); in guc_ring_doorbell()
206 desc = base + gc->proc_desc_offset; in guc_ring_doorbell()
209 desc->tail = gc->wq_tail; in guc_ring_doorbell()
213 db_cmp.cookie = gc->cookie; in guc_ring_doorbell()
217 db_exc.cookie = gc->cookie + 1; in guc_ring_doorbell()
222 db = base + gc->doorbell_offset; in guc_ring_doorbell()
232 gc->cookie = db_exc.cookie; in guc_ring_doorbell()
485 static int guc_get_workqueue_space(struct i915_guc_client *gc, u32 *offset) in guc_get_workqueue_space() argument
492 base = kmap_atomic(i915_gem_object_get_page(gc->client_obj, 0)); in guc_get_workqueue_space()
493 desc = base + gc->proc_desc_offset; in guc_get_workqueue_space()
496 ret = wait_for_atomic(CIRC_SPACE(gc->wq_tail, desc->head, in guc_get_workqueue_space()
497 gc->wq_size) >= size, 1); in guc_get_workqueue_space()
500 *offset = gc->wq_tail; in guc_get_workqueue_space()
503 gc->wq_tail += size; in guc_get_workqueue_space()
504 gc->wq_tail &= gc->wq_size - 1; in guc_get_workqueue_space()
516 static int guc_add_workqueue_item(struct i915_guc_client *gc, in guc_add_workqueue_item() argument
525 ret = guc_get_workqueue_space(gc, &wq_off); in guc_add_workqueue_item()
540 base = kmap_atomic(i915_gem_object_get_page(gc->client_obj, in guc_add_workqueue_item()