aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Harrison <John.C.Harrison@Intel.com>2015-05-29 12:44:02 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-06-23 08:02:25 -0400
commit53fddaf70d08aa6ff59a94ae0578ddc8743e920f (patch)
treee7f0ecc77c906086cff15e2a3b5488d9a6613b5f
parentc4e766389e8b7ce3ceb7f2785d4bb94b82448ff0 (diff)
drm/i915: Update ring->dispatch_execbuffer() to take a request structure
Updated the various ring->dispatch_execbuffer() implementations to take a request instead of a ring. For: VIZ-5115 Signed-off-by: John Harrison <John.C.Harrison@Intel.com> Reviewed-by: Tomas Elf <tomas.elf@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_gem_execbuffer.c4
-rw-r--r--drivers/gpu/drm/i915/i915_gem_render_state.c3
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c18
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.h2
4 files changed, 16 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 1cbd6d65dae5..9977c23ab47d 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -1328,14 +1328,14 @@ i915_gem_ringbuffer_submission(struct i915_execbuffer_params *params,
1328 if (ret) 1328 if (ret)
1329 goto error; 1329 goto error;
1330 1330
1331 ret = ring->dispatch_execbuffer(ring, 1331 ret = ring->dispatch_execbuffer(params->request,
1332 exec_start, exec_len, 1332 exec_start, exec_len,
1333 params->dispatch_flags); 1333 params->dispatch_flags);
1334 if (ret) 1334 if (ret)
1335 goto error; 1335 goto error;
1336 } 1336 }
1337 } else { 1337 } else {
1338 ret = ring->dispatch_execbuffer(ring, 1338 ret = ring->dispatch_execbuffer(params->request,
1339 exec_start, exec_len, 1339 exec_start, exec_len,
1340 params->dispatch_flags); 1340 params->dispatch_flags);
1341 if (ret) 1341 if (ret)
diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c
index e04cda40df5e..a0201fc94d25 100644
--- a/drivers/gpu/drm/i915/i915_gem_render_state.c
+++ b/drivers/gpu/drm/i915/i915_gem_render_state.c
@@ -164,8 +164,7 @@ int i915_gem_render_state_init(struct drm_i915_gem_request *req)
164 if (so.rodata == NULL) 164 if (so.rodata == NULL)
165 return 0; 165 return 0;
166 166
167 ret = req->ring->dispatch_execbuffer(req->ring, 167 ret = req->ring->dispatch_execbuffer(req, so.ggtt_offset,
168 so.ggtt_offset,
169 so.rodata->batch_items * 4, 168 so.rodata->batch_items * 4,
170 I915_DISPATCH_SECURE); 169 I915_DISPATCH_SECURE);
171 if (ret) 170 if (ret)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 28d7801a8fa5..44fdfd07d912 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1760,10 +1760,11 @@ gen8_ring_put_irq(struct intel_engine_cs *ring)
1760} 1760}
1761 1761
1762static int 1762static int
1763i965_dispatch_execbuffer(struct intel_engine_cs *ring, 1763i965_dispatch_execbuffer(struct drm_i915_gem_request *req,
1764 u64 offset, u32 length, 1764 u64 offset, u32 length,
1765 unsigned dispatch_flags) 1765 unsigned dispatch_flags)
1766{ 1766{
1767 struct intel_engine_cs *ring = req->ring;
1767 int ret; 1768 int ret;
1768 1769
1769 ret = intel_ring_begin(ring, 2); 1770 ret = intel_ring_begin(ring, 2);
@@ -1786,10 +1787,11 @@ i965_dispatch_execbuffer(struct intel_engine_cs *ring,
1786#define I830_TLB_ENTRIES (2) 1787#define I830_TLB_ENTRIES (2)
1787#define I830_WA_SIZE max(I830_TLB_ENTRIES*4096, I830_BATCH_LIMIT) 1788#define I830_WA_SIZE max(I830_TLB_ENTRIES*4096, I830_BATCH_LIMIT)
1788static int 1789static int
1789i830_dispatch_execbuffer(struct intel_engine_cs *ring, 1790i830_dispatch_execbuffer(struct drm_i915_gem_request *req,
1790 u64 offset, u32 len, 1791 u64 offset, u32 len,
1791 unsigned dispatch_flags) 1792 unsigned dispatch_flags)
1792{ 1793{
1794 struct intel_engine_cs *ring = req->ring;
1793 u32 cs_offset = ring->scratch.gtt_offset; 1795 u32 cs_offset = ring->scratch.gtt_offset;
1794 int ret; 1796 int ret;
1795 1797
@@ -1848,10 +1850,11 @@ i830_dispatch_execbuffer(struct intel_engine_cs *ring,
1848} 1850}
1849 1851
1850static int 1852static int
1851i915_dispatch_execbuffer(struct intel_engine_cs *ring, 1853i915_dispatch_execbuffer(struct drm_i915_gem_request *req,
1852 u64 offset, u32 len, 1854 u64 offset, u32 len,
1853 unsigned dispatch_flags) 1855 unsigned dispatch_flags)
1854{ 1856{
1857 struct intel_engine_cs *ring = req->ring;
1855 int ret; 1858 int ret;
1856 1859
1857 ret = intel_ring_begin(ring, 2); 1860 ret = intel_ring_begin(ring, 2);
@@ -2423,10 +2426,11 @@ static int gen6_bsd_ring_flush(struct drm_i915_gem_request *req,
2423} 2426}
2424 2427
2425static int 2428static int
2426gen8_ring_dispatch_execbuffer(struct intel_engine_cs *ring, 2429gen8_ring_dispatch_execbuffer(struct drm_i915_gem_request *req,
2427 u64 offset, u32 len, 2430 u64 offset, u32 len,
2428 unsigned dispatch_flags) 2431 unsigned dispatch_flags)
2429{ 2432{
2433 struct intel_engine_cs *ring = req->ring;
2430 bool ppgtt = USES_PPGTT(ring->dev) && 2434 bool ppgtt = USES_PPGTT(ring->dev) &&
2431 !(dispatch_flags & I915_DISPATCH_SECURE); 2435 !(dispatch_flags & I915_DISPATCH_SECURE);
2432 int ret; 2436 int ret;
@@ -2446,10 +2450,11 @@ gen8_ring_dispatch_execbuffer(struct intel_engine_cs *ring,
2446} 2450}
2447 2451
2448static int 2452static int
2449hsw_ring_dispatch_execbuffer(struct intel_engine_cs *ring, 2453hsw_ring_dispatch_execbuffer(struct drm_i915_gem_request *req,
2450 u64 offset, u32 len, 2454 u64 offset, u32 len,
2451 unsigned dispatch_flags) 2455 unsigned dispatch_flags)
2452{ 2456{
2457 struct intel_engine_cs *ring = req->ring;
2453 int ret; 2458 int ret;
2454 2459
2455 ret = intel_ring_begin(ring, 2); 2460 ret = intel_ring_begin(ring, 2);
@@ -2468,10 +2473,11 @@ hsw_ring_dispatch_execbuffer(struct intel_engine_cs *ring,
2468} 2473}
2469 2474
2470static int 2475static int
2471gen6_ring_dispatch_execbuffer(struct intel_engine_cs *ring, 2476gen6_ring_dispatch_execbuffer(struct drm_i915_gem_request *req,
2472 u64 offset, u32 len, 2477 u64 offset, u32 len,
2473 unsigned dispatch_flags) 2478 unsigned dispatch_flags)
2474{ 2479{
2480 struct intel_engine_cs *ring = req->ring;
2475 int ret; 2481 int ret;
2476 2482
2477 ret = intel_ring_begin(ring, 2); 2483 ret = intel_ring_begin(ring, 2);
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
index 96b8e353a1f0..bf679ae03aa1 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -194,7 +194,7 @@ struct intel_engine_cs {
194 bool lazy_coherency); 194 bool lazy_coherency);
195 void (*set_seqno)(struct intel_engine_cs *ring, 195 void (*set_seqno)(struct intel_engine_cs *ring,
196 u32 seqno); 196 u32 seqno);
197 int (*dispatch_execbuffer)(struct intel_engine_cs *ring, 197 int (*dispatch_execbuffer)(struct drm_i915_gem_request *req,
198 u64 offset, u32 length, 198 u64 offset, u32 length,
199 unsigned dispatch_flags); 199 unsigned dispatch_flags);
200#define I915_DISPATCH_SECURE 0x1 200#define I915_DISPATCH_SECURE 0x1