drm/i915: use _NOTRACE for gmbus/dp aux wait loops
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sat, 1 Dec 2012 20:03:59 +0000 (21:03 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 6 Dec 2012 12:19:13 +0000 (13:19 +0100)
Less clutter in the traces. And in both cases we yell rather loud
into the logs if we time out. Patch suggested by Chris Wilson.

v2: Annotate another I915_READ in dp_aux to be consistent - we filter
out all register io in wait_for and similar loops. Chris also
suggested to mark all dp_aux register access as _NOTRACE, but I think
we should keep all functionally relevant access around, and filter
unneeded bits in userspace after the trace is captured.

Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c
drivers/gpu/drm/i915/intel_i2c.c

index ada1b316195cdabb323508c23244c6d6dfc51772..3f633cadc8ba3d07be4abf22eb4e9f01167606ca 100644 (file)
@@ -351,7 +351,7 @@ intel_dp_aux_wait_done(struct intel_dp *intel_dp, bool has_aux_irq)
                }
        }
 
-#define C (((status = I915_READ(ch_ctl)) & DP_AUX_CH_CTL_SEND_BUSY) == 0)
+#define C (((status = I915_READ_NOTRACE(ch_ctl)) & DP_AUX_CH_CTL_SEND_BUSY) == 0)
        if (has_aux_irq)
                done = wait_event_timeout(dev_priv->gmbus_wait_queue, C, 10);
        else
@@ -439,7 +439,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
 
        /* Try to wait for any previous AUX channel activity */
        for (try = 0; try < 3; try++) {
-               status = I915_READ(ch_ctl);
+               status = I915_READ_NOTRACE(ch_ctl);
                if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0)
                        break;
                msleep(1);
index 1fc31191b91007e5ac9ff0bdd6b304b49fbf3511..7f0904170963598c565b008126dbb116a8dccea0 100644 (file)
@@ -223,7 +223,7 @@ gmbus_wait_hw_status(struct drm_i915_private *dev_priv,
                prepare_to_wait(&dev_priv->gmbus_wait_queue, &wait,
                                TASK_UNINTERRUPTIBLE);
 
-               gmbus2 = I915_READ(GMBUS2 + reg_offset);
+               gmbus2 = I915_READ_NOTRACE(GMBUS2 + reg_offset);
                if (gmbus2 & (GMBUS_SATOER | gmbus2_status))
                        break;
 
@@ -246,7 +246,7 @@ gmbus_wait_idle(struct drm_i915_private *dev_priv)
        int ret;
        int reg_offset = dev_priv->gpio_mmio_base;
 
-#define C ((I915_READ(GMBUS2 + reg_offset) & GMBUS_ACTIVE) == 0)
+#define C ((I915_READ_NOTRACE(GMBUS2 + reg_offset) & GMBUS_ACTIVE) == 0)
 
        if (!HAS_GMBUS_IRQ(dev_priv->dev))
                return wait_for(C, 10);