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 <e...@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

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to