memcpy_from_wc functions in i915_memcpy.c will be removed and replaced
by the implementation in drm_cache.c.
Updated to use the functions provided by drm_cache.c.

v2: Check if the log object allocated from local memory or system memory
    and according setup the iosys_map (Lucas)

Cc: Lucas De Marchi <lucas.demar...@intel.com>

Signed-off-by: Balasubramani Vivekanandan <balasubramani.vivekanan...@intel.com>
---
 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
index a24dc6441872..b9db765627ea 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
@@ -3,6 +3,7 @@
  * Copyright © 2014-2019 Intel Corporation
  */
 
+#include <drm/drm_cache.h>
 #include <linux/debugfs.h>
 #include <linux/string_helpers.h>
 
@@ -206,6 +207,7 @@ static void guc_read_update_log_buffer(struct intel_guc_log 
*log)
        enum guc_log_buffer_type type;
        void *src_data, *dst_data;
        bool new_overflow;
+       struct iosys_map src_map;
 
        mutex_lock(&log->relay.lock);
 
@@ -282,14 +284,21 @@ static void guc_read_update_log_buffer(struct 
intel_guc_log *log)
                }
 
                /* Just copy the newly written data */
+               if (i915_gem_object_is_lmem(log->vma->obj))
+                       iosys_map_set_vaddr_iomem(&src_map, (void __iomem 
*)src_data);
+               else
+                       iosys_map_set_vaddr(&src_map, src_data);
+
                if (read_offset > write_offset) {
-                       i915_memcpy_from_wc(dst_data, src_data, write_offset);
+                       drm_memcpy_from_wc_vaddr(dst_data, &src_map,
+                                                write_offset);
                        bytes_to_copy = buffer_size - read_offset;
                } else {
                        bytes_to_copy = write_offset - read_offset;
                }
-               i915_memcpy_from_wc(dst_data + read_offset,
-                                   src_data + read_offset, bytes_to_copy);
+               iosys_map_incr(&src_map, read_offset);
+               drm_memcpy_from_wc_vaddr(dst_data + read_offset, &src_map,
+                                        bytes_to_copy);
 
                src_data += buffer_size;
                dst_data += buffer_size;
-- 
2.25.1

Reply via email to