aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/intel_dsi.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 33656647f8bc..7ceb8c67344a 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -110,6 +110,15 @@ static void intel_dsi_device_ready(struct intel_encoder *encoder)
110 110
111 DRM_DEBUG_KMS("\n"); 111 DRM_DEBUG_KMS("\n");
112 112
113 mutex_lock(&dev_priv->dpio_lock);
114 /* program rcomp for compliance, reduce from 50 ohms to 45 ohms
115 * needed everytime after power gate */
116 vlv_flisdsi_write(dev_priv, 0x04, 0x0004);
117 mutex_unlock(&dev_priv->dpio_lock);
118
119 /* bandgap reset is needed after everytime we do power gate */
120 band_gap_reset(dev_priv);
121
113 val = I915_READ(MIPI_PORT_CTRL(pipe)); 122 val = I915_READ(MIPI_PORT_CTRL(pipe));
114 I915_WRITE(MIPI_PORT_CTRL(pipe), val | LP_OUTPUT_HOLD); 123 I915_WRITE(MIPI_PORT_CTRL(pipe), val | LP_OUTPUT_HOLD);
115 usleep_range(1000, 1500); 124 usleep_range(1000, 1500);
@@ -379,9 +388,6 @@ static void intel_dsi_mode_set(struct intel_encoder *intel_encoder)
379 388
380 DRM_DEBUG_KMS("pipe %c\n", pipe_name(pipe)); 389 DRM_DEBUG_KMS("pipe %c\n", pipe_name(pipe));
381 390
382 /* XXX: Location of the call */
383 band_gap_reset(dev_priv);
384
385 /* escape clock divider, 20MHz, shared for A and C. device ready must be 391 /* escape clock divider, 20MHz, shared for A and C. device ready must be
386 * off when doing this! txclkesc? */ 392 * off when doing this! txclkesc? */
387 tmp = I915_READ(MIPI_CTRL(0)); 393 tmp = I915_READ(MIPI_CTRL(0));