[Intel-gfx] [PATCH 2/2] drm/i915: Move execlists port head instead of memmoving array
Mika Kuoppala
mika.kuoppala at linux.intel.com
Thu Oct 19 14:39:42 UTC 2017
From: Mika Kuoppala <mika.kuoppala at intel.com>
As all our access to execlist ports are through head and tail
helpers, we can now move the head instead of memmoving the array.
Cc: MichaĆ Winiarski <michal.winiarski at intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
index cfec73400d0f..27f5c42ae7c8 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -573,12 +573,13 @@ static inline void
execlists_port_complete(struct intel_engine_execlists * const execlists,
struct execlist_port * const port)
{
- const unsigned int m = execlists->port_mask;
+ GEM_BUG_ON(port_index(port, execlists) != execlists->port_head);
+ GEM_BUG_ON(!port_isset(port));
- GEM_BUG_ON(port_index(port, execlists) != 0);
+ port->request_count = NULL;
+ GEM_DEBUG_DECL(port->context_id = 0);
- memmove(port, port + 1, m * sizeof(struct execlist_port));
- memset(port + m, 0, sizeof(struct execlist_port));
+ execlists->port_head = port_head_add(execlists, 1);
}
static inline unsigned int
--
2.11.0
More information about the Intel-gfx
mailing list