summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/display/intel_ddi.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index ef759b148131..a14baea12800 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -1929,8 +1929,12 @@ static void cnl_ddi_disable_clock(struct intel_encoder *encoder)
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
enum port port = encoder->port;
+ mutex_lock(&i915->dpll.lock);
+
intel_de_rmw(i915, DPCLKA_CFGCR0,
0, DPCLKA_CFGCR0_DDI_CLK_OFF(port));
+
+ mutex_unlock(&i915->dpll.lock);
}
static void skl_ddi_enable_clock(struct intel_encoder *encoder,
@@ -1959,8 +1963,12 @@ static void skl_ddi_disable_clock(struct intel_encoder *encoder)
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
enum port port = encoder->port;
+ mutex_lock(&i915->dpll.lock);
+
intel_de_rmw(i915, DPLL_CTRL2,
0, DPLL_CTRL2_DDI_CLK_OFF(port));
+
+ mutex_unlock(&i915->dpll.lock);
}
void hsw_ddi_enable_clock(struct intel_encoder *encoder,