|
@@ -3303,15 +3303,14 @@ int intel_freq_opcode(struct drm_i915_private *dev_priv, int val);
|
|
|
#define I915_READ64(reg) dev_priv->uncore.funcs.mmio_readq(dev_priv, (reg), true)
|
|
|
|
|
|
#define I915_READ64_2x32(lower_reg, upper_reg) ({ \
|
|
|
- u32 upper = I915_READ(upper_reg); \
|
|
|
- u32 lower = I915_READ(lower_reg); \
|
|
|
- u32 tmp = I915_READ(upper_reg); \
|
|
|
- if (upper != tmp) { \
|
|
|
- upper = tmp; \
|
|
|
- lower = I915_READ(lower_reg); \
|
|
|
- WARN_ON(I915_READ(upper_reg) != upper); \
|
|
|
- } \
|
|
|
- (u64)upper << 32 | lower; })
|
|
|
+ u32 upper, lower, tmp; \
|
|
|
+ tmp = I915_READ(upper_reg); \
|
|
|
+ do { \
|
|
|
+ upper = tmp; \
|
|
|
+ lower = I915_READ(lower_reg); \
|
|
|
+ tmp = I915_READ(upper_reg); \
|
|
|
+ } while (upper != tmp); \
|
|
|
+ (u64)upper << 32 | lower; })
|
|
|
|
|
|
#define POSTING_READ(reg) (void)I915_READ_NOTRACE(reg)
|
|
|
#define POSTING_READ16(reg) (void)I915_READ16_NOTRACE(reg)
|