[Intel-gfx] [PATCH 1/2] drm/i915/gen8: The WA BB framework is enabled.
Michel Thierry
michel.thierry at intel.com
Fri Feb 27 09:32:54 PST 2015
On 25/02/15 17:54, Arun Siluvery wrote:
> From: Namrta <namrta.salonie at intel.com>
>
> This can be used to enable WA BB infrastructure for features like
> RC6, SSEU and in between context save/restore etc.
> The patch which would need WA BB will have to declare the wa_bb obj
> utilizing the function here. Update the WA BB with required commands
> and update the address of the WA BB at appropriate place.
>
> Change-Id: I9cc49ae7426560215e7b6a6d10ba411caeb9321b
> Signed-off-by: Namrta <namrta.salonie at intel.com>
> Signed-off-by: Arun Siluvery <arun.siluvery at linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_lrc.c | 32 ++++++++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 9c851d8..47473e5 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -1337,6 +1337,38 @@ static int gen8_emit_request(struct intel_ringbuffer *ringbuf,
> return 0;
> }
>
> +static struct intel_ringbuffer *
> +create_wa_bb(struct intel_engine_cs *ring, uint32_t bb_size)
> +{
> + struct drm_device *dev = ring->dev;
> + struct intel_ringbuffer *ringbuf;
> + int ret;
> +
> + ringbuf = kzalloc(sizeof(*ringbuf), GFP_KERNEL);
> + if (!ringbuf)
> + return NULL;
> +
> + ringbuf->ring = ring;
> +
> + ringbuf->size = roundup(bb_size, PAGE_SIZE);
> + ringbuf->effective_size = ringbuf->size;
> + ringbuf->head = 0;
> + ringbuf->tail = 0;
> + ringbuf->space = ringbuf->size;
> + ringbuf->last_retired_head = -1;
> +
> + ret = intel_alloc_ringbuffer_obj(dev, ringbuf);
> + if (ret) {
> + DRM_DEBUG_DRIVER(
> + "Failed to allocate ringbuf obj for wa_bb%s: %d\n",
> + ring->name, ret);
> + kfree(ringbuf);
> + return NULL;
> + }
> +
> + return ringbuf;
> +}
> +
> static int intel_lr_context_render_state_init(struct intel_engine_cs *ring,
> struct intel_context *ctx)
> {
Maybe add an extra line between the 2 paragraphs in the commit message.
Reviewed-by: Michel Thierry <michel.thierry at intel.com>
More information about the Intel-gfx
mailing list