Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Fix restore of 965 fence regs since the register tracing change.
@ 2010-11-18  2:05 Eric Anholt
  2010-11-18  3:47 ` Keith Packard
  0 siblings, 1 reply; 5+ messages in thread
From: Eric Anholt @ 2010-11-18  2:05 UTC (permalink / raw)
  To: intel-gfx

We were reading our 64-bit value in I915_READ64 and returning 32 bits
of it.  The restoration of fence regs at resume then had a zero end
value, and the fence had no effect.

Signed-off-by: Eric Anholt <eric@anholt.net>
---
 drivers/gpu/drm/i915/i915_drv.h |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 73a41f7..f731ecd 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1244,7 +1244,7 @@ extern void intel_overlay_print_error_state(struct seq_file *m, struct intel_ove
 #define I915_READ8(reg)		i915_read(dev_priv, (reg), 1)
 #define I915_WRITE8(reg, val)	i915_write(dev_priv, (reg), (val), 1)
 #define I915_WRITE64(reg, val)	i915_write(dev_priv, (reg), (val), 8)
-#define I915_READ64(reg)	i915_read(dev_priv, (reg), 8)
+#define I915_READ64(reg)	i915_read64(dev_priv, (reg))
 
 #define I915_READ_NOTRACE(reg)		readl(dev_priv->regs + (reg))
 #define I915_WRITE_NOTRACE(reg, val)	writel(val, dev_priv->regs + (reg))
@@ -1256,12 +1256,9 @@ extern void intel_overlay_print_error_state(struct seq_file *m, struct intel_ove
 
 static inline u32 i915_read(struct drm_i915_private *dev_priv, u32 reg, int len)
 {
-       u64 val = 0;
+       u32 val = 0;
 
        switch (len) {
-       case 8:
-               val = readq(dev_priv->regs + reg);
-               break;
        case 4:
                val = readl(dev_priv->regs + reg);
                break;
@@ -1277,6 +1274,15 @@ static inline u32 i915_read(struct drm_i915_private *dev_priv, u32 reg, int len)
        return val;
 }
 
+static inline u64 i915_read64(struct drm_i915_private *dev_priv, u32 reg)
+{
+       u64 val = readq(dev_priv->regs + reg);
+
+       trace_i915_reg_rw('R', reg, val, 8);
+
+       return val;
+}
+
 /* On SNB platform, before reading ring registers forcewake bit
  * must be set to prevent GT core from power down and stale values being
  * returned.
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-11-22 14:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-18  2:05 [PATCH] drm/i915: Fix restore of 965 fence regs since the register tracing change Eric Anholt
2010-11-18  3:47 ` Keith Packard
2010-11-18 14:46   ` Chris Wilson
2010-11-22 12:13   ` Chris Wilson
2010-11-22 14:18     ` Peter Clifton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox