This can be acomplished by simple writing 0 to the DDI function control register too, but better be explicit about what fields we are unsetting here to prevent possible issues. Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com> --- drivers/gpu/drm/i915/intel_display.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index b70a826..2912207 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -1626,6 +1626,16 @@ static void intel_disable_pipe(struct drm_i915_private *dev_priv, I915_WRITE(reg, val & ~PIPECONF_ENABLE); intel_wait_for_pipe_off(dev_priv->dev, pipe); + + /* On HSW, disable pipe DDI function with the pipe */ + if (IS_HASWELL(dev_priv->dev)) { + val = I915_READ(DDI_FUNC_CTL(pipe)); + val &= ~PIPE_DDI_PORT_MASK; + val &= ~PIPE_DDI_FUNC_ENABLE; + I915_WRITE(DDI_FUNC_CTL(pipe), + val); + } + } /* -- 1.7.10