drm/i915: Expand ggtt_view parameters for debugfs
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 12 Jan 2017 11:21:08 +0000 (11:21 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 12 Jan 2017 16:47:04 +0000 (16:47 +0000)
When dumping the VMA, include the parameters of the different GGTT views
so that we can distinguish them.

v2: Contract output and add MISSING_CASE for any unknown types.
v3: Show both stride and offset for rotated planes.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170112112108.31632-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_debugfs.c

index 9d7b5a8..e367f06 100644 (file)
@@ -159,8 +159,35 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
                seq_printf(m, " (%sgtt offset: %08llx, size: %08llx",
                           i915_vma_is_ggtt(vma) ? "g" : "pp",
                           vma->node.start, vma->node.size);
-               if (i915_vma_is_ggtt(vma))
-                       seq_printf(m, ", type: %u", vma->ggtt_view.type);
+               if (i915_vma_is_ggtt(vma)) {
+                       switch (vma->ggtt_view.type) {
+                       case I915_GGTT_VIEW_NORMAL:
+                               seq_puts(m, ", normal");
+                               break;
+
+                       case I915_GGTT_VIEW_PARTIAL:
+                               seq_printf(m, ", partial [%08llx+%x]",
+                                          vma->ggtt_view.params.partial.offset << PAGE_SHIFT,
+                                          vma->ggtt_view.params.partial.size << PAGE_SHIFT);
+                               break;
+
+                       case I915_GGTT_VIEW_ROTATED:
+                               seq_printf(m, ", rotated [(%ux%u, stride=%u, offset=%u), (%ux%u, stride=%u, offset=%u)]",
+                                          vma->ggtt_view.params.rotated.plane[0].width,
+                                          vma->ggtt_view.params.rotated.plane[0].height,
+                                          vma->ggtt_view.params.rotated.plane[0].stride,
+                                          vma->ggtt_view.params.rotated.plane[0].offset,
+                                          vma->ggtt_view.params.rotated.plane[1].width,
+                                          vma->ggtt_view.params.rotated.plane[1].height,
+                                          vma->ggtt_view.params.rotated.plane[1].stride,
+                                          vma->ggtt_view.params.rotated.plane[1].offset);
+                               break;
+
+                       default:
+                               MISSING_CASE(vma->ggtt_view.type);
+                               break;
+                       }
+               }
                if (vma->fence)
                        seq_printf(m, " , fence: %d%s",
                                   vma->fence->id,