浏览代码

drm/i915: POSTING_READs are simply flushes and so irrelevant to tracing

As we use POSTING_READ to flush the write to the register before
proceeding, we do not care what the return value is and similar we do
not care for the read to be recorded whilst tracing register
read/writes.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson 14 年之前
父节点
当前提交
374c479bef
共有 2 个文件被更改,包括 7 次插入5 次删除
  1. 5 3
      drivers/gpu/drm/i915/i915_drv.h
  2. 2 2
      drivers/gpu/drm/i915/intel_i2c.c

+ 5 - 3
drivers/gpu/drm/i915/i915_drv.h

@@ -1226,12 +1226,14 @@ i915_write(struct drm_i915_private *dev_priv, u32 reg, u64 val, int len)
 #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 POSTING_READ(reg)	(void)I915_READ(reg)
-#define POSTING_READ16(reg)	(void)I915_READ16(reg)
 
 #define I915_READ_NOTRACE(reg)		readl(dev_priv->regs + (reg))
 #define I915_WRITE_NOTRACE(reg, val)	writel(val, dev_priv->regs + (reg))
-#define POSTING_READ_NOTRACE(reg)	(void)I915_READ_NOTRACE(reg)
+#define I915_READ16_NOTRACE(reg)		readw(dev_priv->regs + (reg))
+#define I915_WRITE16_NOTRACE(reg, val)	writew(val, dev_priv->regs + (reg))
+
+#define POSTING_READ(reg)	(void)I915_READ_NOTRACE(reg)
+#define POSTING_READ16(reg)	(void)I915_READ16_NOTRACE(reg)
 
 
 #define BEGIN_LP_RING(n) \

+ 2 - 2
drivers/gpu/drm/i915/intel_i2c.c

@@ -126,7 +126,7 @@ static void set_clock(void *data, int state_high)
 			GPIO_CLOCK_VAL_MASK;
 
 	I915_WRITE_NOTRACE(gpio->reg, reserved | clock_bits);
-	POSTING_READ_NOTRACE(gpio->reg);
+	POSTING_READ(gpio->reg);
 }
 
 static void set_data(void *data, int state_high)
@@ -143,7 +143,7 @@ static void set_data(void *data, int state_high)
 			GPIO_DATA_VAL_MASK;
 
 	I915_WRITE_NOTRACE(gpio->reg, reserved | data_bits);
-	POSTING_READ_NOTRACE(gpio->reg);
+	POSTING_READ(gpio->reg);
 }
 
 static struct i2c_adapter *