From: Chris Wilson <[email protected]>

Instead of manipulating the object's cache domain, just use the device
coherent map to write the batch buffer.

Signed-off-by: Chris Wilson <[email protected]>
Reviewed-by: Matthew Auld <[email protected]>
Signed-off-by: Tvrtko Ursulin <[email protected]>
---
 .../drm/i915/gem/selftests/i915_gem_context.c    | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c 
b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
index ce70d0a3afb2..3d8d5f242e34 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
@@ -1622,7 +1622,7 @@ static int read_from_scratch(struct i915_gem_context *ctx,
                if (err)
                        goto out_vm;
 
-               cmd = i915_gem_object_pin_map_unlocked(obj, I915_MAP_WB);
+               cmd = i915_gem_object_pin_map_unlocked(obj, I915_MAP_WC);
                if (IS_ERR(cmd)) {
                        err = PTR_ERR(cmd);
                        goto out;
@@ -1658,7 +1658,7 @@ static int read_from_scratch(struct i915_gem_context *ctx,
                if (err)
                        goto out_vm;
 
-               cmd = i915_gem_object_pin_map_unlocked(obj, I915_MAP_WB);
+               cmd = i915_gem_object_pin_map_unlocked(obj, I915_MAP_WC);
                if (IS_ERR(cmd)) {
                        err = PTR_ERR(cmd);
                        goto out;
@@ -1707,15 +1707,17 @@ static int read_from_scratch(struct i915_gem_context 
*ctx,
 
        i915_vma_unpin(vma);
 
+       i915_request_get(rq);
        i915_request_add(rq);
 
-       i915_gem_object_lock(obj, NULL);
-       err = i915_gem_object_set_to_cpu_domain(obj, false);
-       i915_gem_object_unlock(obj);
-       if (err)
+       if (i915_request_wait(rq, 0, HZ / 5) < 0) {
+               i915_request_put(rq);
+               err = -ETIME;
                goto out_vm;
+       }
+       i915_request_put(rq);
 
-       cmd = i915_gem_object_pin_map_unlocked(obj, I915_MAP_WB);
+       cmd = i915_gem_object_pin_map_unlocked(obj, I915_MAP_WC);
        if (IS_ERR(cmd)) {
                err = PTR_ERR(cmd);
                goto out_vm;
-- 
2.30.2

Reply via email to