Skip to content

Commit 1ea56e2

Browse files
vsyrjaladanvet
authored andcommitted
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: Ville Syrjälä <[email protected]> Reviewed-by: Jesse Barnes <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
1 parent 3c65d1d commit 1ea56e2

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

drivers/gpu/drm/i915/intel_crt.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,14 @@ static void intel_disable_crt(struct intel_encoder *encoder)
207207
intel_crt_set_dpms(encoder, DRM_MODE_DPMS_OFF);
208208
}
209209

210+
static void pch_disable_crt(struct intel_encoder *encoder)
211+
{
212+
}
213+
214+
static void pch_post_disable_crt(struct intel_encoder *encoder)
215+
{
216+
intel_disable_crt(encoder);
217+
}
210218

211219
static void hsw_crt_post_disable(struct intel_encoder *encoder)
212220
{
@@ -888,7 +896,12 @@ void intel_crt_init(struct drm_device *dev)
888896
crt->adpa_reg = ADPA;
889897

890898
crt->base.compute_config = intel_crt_compute_config;
891-
crt->base.disable = intel_disable_crt;
899+
if (HAS_PCH_SPLIT(dev) && !HAS_DDI(dev)) {
900+
crt->base.disable = pch_disable_crt;
901+
crt->base.post_disable = pch_post_disable_crt;
902+
} else {
903+
crt->base.disable = intel_disable_crt;
904+
}
892905
crt->base.enable = intel_enable_crt;
893906
if (I915_HAS_HOTPLUG(dev))
894907
crt->base.hpd_pin = HPD_CRT;

0 commit comments

Comments
 (0)