mirror of https://gitee.com/openkylin/linux.git
drm/i915/bdw: Add a context and an engine pointers to the ringbuffer
Any given ringbuffer is unequivocally tied to one context and one engine. By setting the appropriate pointers to them, the ringbuffer struct holds all the infromation you might need to submit a workload for processing, Execlists style. v2: Drop ring->ctx since that looks terribly ill-defined for legacy ringbuffer submission. Signed-off-by: Oscar Mateo <oscar.mateo@intel.com> (v1) Acked-by: Damien Lespiau <damien.lespiau@intel.com> (v2) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
84c2377fce
commit
0c7dd53b84
|
@ -134,6 +134,7 @@ int intel_lr_context_deferred_create(struct intel_context *ctx,
|
|||
return ret;
|
||||
}
|
||||
|
||||
ringbuf->ring = ring;
|
||||
ringbuf->size = 32 * PAGE_SIZE;
|
||||
ringbuf->effective_size = ringbuf->size;
|
||||
ringbuf->head = 0;
|
||||
|
|
|
@ -1594,6 +1594,7 @@ static int intel_init_ring_buffer(struct drm_device *dev,
|
|||
INIT_LIST_HEAD(&ring->active_list);
|
||||
INIT_LIST_HEAD(&ring->request_list);
|
||||
ringbuf->size = 32 * PAGE_SIZE;
|
||||
ringbuf->ring = ring;
|
||||
memset(ring->semaphore.sync_seqno, 0, sizeof(ring->semaphore.sync_seqno));
|
||||
|
||||
init_waitqueue_head(&ring->irq_queue);
|
||||
|
|
|
@ -90,6 +90,8 @@ struct intel_ringbuffer {
|
|||
struct drm_i915_gem_object *obj;
|
||||
void __iomem *virtual_start;
|
||||
|
||||
struct intel_engine_cs *ring;
|
||||
|
||||
u32 head;
|
||||
u32 tail;
|
||||
int space;
|
||||
|
|
Loading…
Reference in New Issue