diff options
-rw-r--r-- | drivers/gpu/drm/i915/intel_dsi.c | 12 |
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)); |