diff options
author | John Harrison <John.C.Harrison@Intel.com> | 2015-05-29 12:44:02 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-06-23 08:02:25 -0400 |
commit | 53fddaf70d08aa6ff59a94ae0578ddc8743e920f (patch) | |
tree | e7f0ecc77c906086cff15e2a3b5488d9a6613b5f | |
parent | c4e766389e8b7ce3ceb7f2785d4bb94b82448ff0 (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.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_render_state.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.c | 18 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.h | 2 |
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 | ||
1762 | static int | 1762 | static int |
1763 | i965_dispatch_execbuffer(struct intel_engine_cs *ring, | 1763 | i965_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) |
1788 | static int | 1789 | static int |
1789 | i830_dispatch_execbuffer(struct intel_engine_cs *ring, | 1790 | i830_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 | ||
1850 | static int | 1852 | static int |
1851 | i915_dispatch_execbuffer(struct intel_engine_cs *ring, | 1853 | i915_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 | ||
2425 | static int | 2428 | static int |
2426 | gen8_ring_dispatch_execbuffer(struct intel_engine_cs *ring, | 2429 | gen8_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 | ||
2448 | static int | 2452 | static int |
2449 | hsw_ring_dispatch_execbuffer(struct intel_engine_cs *ring, | 2453 | hsw_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 | ||
2470 | static int | 2475 | static int |
2471 | gen6_ring_dispatch_execbuffer(struct intel_engine_cs *ring, | 2476 | gen6_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 |