diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_runtime_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_runtime_pm.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index 356c662ad453..87b4af092d54 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c | |||
@@ -1039,7 +1039,18 @@ static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv, | |||
1039 | 1039 | ||
1040 | static void vlv_init_display_clock_gating(struct drm_i915_private *dev_priv) | 1040 | static void vlv_init_display_clock_gating(struct drm_i915_private *dev_priv) |
1041 | { | 1041 | { |
1042 | I915_WRITE(DSPCLK_GATE_D, VRHUNIT_CLOCK_GATE_DISABLE); | 1042 | u32 val; |
1043 | |||
1044 | /* | ||
1045 | * On driver load, a pipe may be active and driving a DSI display. | ||
1046 | * Preserve DPOUNIT_CLOCK_GATE_DISABLE to avoid the pipe getting stuck | ||
1047 | * (and never recovering) in this case. intel_dsi_post_disable() will | ||
1048 | * clear it when we turn off the display. | ||
1049 | */ | ||
1050 | val = I915_READ(DSPCLK_GATE_D); | ||
1051 | val &= DPOUNIT_CLOCK_GATE_DISABLE; | ||
1052 | val |= VRHUNIT_CLOCK_GATE_DISABLE; | ||
1053 | I915_WRITE(DSPCLK_GATE_D, val); | ||
1043 | 1054 | ||
1044 | /* | 1055 | /* |
1045 | * Disable trickle feed and enable pnd deadline calculation | 1056 | * Disable trickle feed and enable pnd deadline calculation |