diff options
Diffstat (limited to 'drivers/gpu/drm')
| -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)); |
