From ac2300d4d5c2e9e4d82361a582cf1df3ec22fec7 Mon Sep 17 00:00:00 2001 From: Damien Lespiau Date: Tue, 15 Oct 2013 18:55:30 +0100 Subject: [PATCH] drm/i915: Sample the frame counter instead of a timestamp for CRCs Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter --- drivers/gpu/drm/i915/i915_debugfs.c | 4 ++-- drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_irq.c | 8 ++------ 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 991abff94e1e..58c6fd4c8610 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -1748,14 +1748,14 @@ static int i915_pipe_crc(struct seq_file *m, void *data) return 0; } - seq_puts(m, " timestamp CRC1 CRC2 CRC3 CRC4 CRC5\n"); + seq_puts(m, " frame CRC1 CRC2 CRC3 CRC4 CRC5\n"); head = atomic_read(&pipe_crc->head); tail = atomic_read(&pipe_crc->tail); while (CIRC_CNT(head, tail, INTEL_PIPE_CRC_ENTRIES_NR) >= 1) { struct intel_pipe_crc_entry *entry = &pipe_crc->entries[tail]; - seq_printf(m, "%12u %8x %8x %8x %8x %8x\n", entry->timestamp, + seq_printf(m, "%8u %8x %8x %8x %8x %8x\n", entry->frame, entry->crc[0], entry->crc[1], entry->crc[2], entry->crc[3], entry->crc[4]); diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index a29a4a1d300a..f8a36d038457 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1226,7 +1226,7 @@ enum intel_pipe_crc_source { }; struct intel_pipe_crc_entry { - uint32_t timestamp; + uint32_t frame; uint32_t crc[5]; }; diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 73d76af13ed4..0b218285c2c1 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -1195,8 +1195,7 @@ static void ivb_pipe_crc_update(struct drm_device *dev, enum pipe pipe) struct drm_i915_private *dev_priv = dev->dev_private; struct intel_pipe_crc *pipe_crc = &dev_priv->pipe_crc[pipe]; struct intel_pipe_crc_entry *entry; - ktime_t now; - int ts, head, tail; + int head, tail; head = atomic_read(&pipe_crc->head); tail = atomic_read(&pipe_crc->tail); @@ -1208,10 +1207,7 @@ static void ivb_pipe_crc_update(struct drm_device *dev, enum pipe pipe) entry = &pipe_crc->entries[head]; - now = ktime_get(); - ts = ktime_to_us(now); - - entry->timestamp = ts; + entry->frame = I915_READ(PIPEFRAME(pipe)); entry->crc[0] = I915_READ(PIPE_CRC_RES_1_IVB(pipe)); entry->crc[1] = I915_READ(PIPE_CRC_RES_2_IVB(pipe)); entry->crc[2] = I915_READ(PIPE_CRC_RES_3_IVB(pipe)); -- 2.34.1