Commit 1ea56e26 authored by Ville Syrjälä's avatar Ville Syrjälä Committed by Daniel Vetter

drm/i915: Disable CRT port after pipe on PCH platforms

Follow the BSpec sequence for the CRT port as well on PCH platforms,
ie. disable the pipe before the port.

Didn't bother looking at DDI in detail yet, so leave that one be even
though the CRT is a PCH port there.
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 3c65d1d1
...@@ -207,6 +207,14 @@ static void intel_disable_crt(struct intel_encoder *encoder) ...@@ -207,6 +207,14 @@ static void intel_disable_crt(struct intel_encoder *encoder)
intel_crt_set_dpms(encoder, DRM_MODE_DPMS_OFF); intel_crt_set_dpms(encoder, DRM_MODE_DPMS_OFF);
} }
static void pch_disable_crt(struct intel_encoder *encoder)
{
}
static void pch_post_disable_crt(struct intel_encoder *encoder)
{
intel_disable_crt(encoder);
}
static void hsw_crt_post_disable(struct intel_encoder *encoder) static void hsw_crt_post_disable(struct intel_encoder *encoder)
{ {
...@@ -888,7 +896,12 @@ void intel_crt_init(struct drm_device *dev) ...@@ -888,7 +896,12 @@ void intel_crt_init(struct drm_device *dev)
crt->adpa_reg = ADPA; crt->adpa_reg = ADPA;
crt->base.compute_config = intel_crt_compute_config; crt->base.compute_config = intel_crt_compute_config;
if (HAS_PCH_SPLIT(dev) && !HAS_DDI(dev)) {
crt->base.disable = pch_disable_crt;
crt->base.post_disable = pch_post_disable_crt;
} else {
crt->base.disable = intel_disable_crt; crt->base.disable = intel_disable_crt;
}
crt->base.enable = intel_enable_crt; crt->base.enable = intel_enable_crt;
if (I915_HAS_HOTPLUG(dev)) if (I915_HAS_HOTPLUG(dev))
crt->base.hpd_pin = HPD_CRT; crt->base.hpd_pin = HPD_CRT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment