Răsfoiți Sursa

drm/i915: Support readback of stolen objects upon error

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Chris Wilson 12 ani în urmă
părinte
comite
960e3564bf
1 a modificat fișierele cu 8 adăugiri și 0 ștergeri
  1. 8 0
      drivers/gpu/drm/i915/i915_irq.c

+ 8 - 0
drivers/gpu/drm/i915/i915_irq.c

@@ -929,6 +929,14 @@ i915_error_object_create(struct drm_i915_private *dev_priv,
 						     reloc_offset);
 			memcpy_fromio(d, s, PAGE_SIZE);
 			io_mapping_unmap_atomic(s);
+		} else if (src->stolen) {
+			unsigned long offset;
+
+			offset = dev_priv->mm.stolen_base;
+			offset += src->stolen->start;
+			offset += i << PAGE_SHIFT;
+
+			memcpy_fromio(d, (void *)offset, PAGE_SIZE);
 		} else {
 			struct page *page;
 			void *s;