Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf5a269a authored by Zhenyu Wang's avatar Zhenyu Wang Committed by Eric Anholt
Browse files

drm/i915: TV detection fix



Check that the encoder has a real enabled crtc for TV detect, and fix
missing TV type setting after detect.

Signed-off-by: default avatarZhenyu Wang <zhenyu.z.wang@intel.com>
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
parent d2d9f232
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1406,6 +1406,7 @@ intel_tv_detect_type (struct drm_crtc *crtc, struct intel_output *intel_output)
		tv_dac = I915_READ(TV_DAC);
		I915_WRITE(TV_DAC, save_tv_dac);
		I915_WRITE(TV_CTL, save_tv_ctl);
		intel_wait_for_vblank(dev);
	}
	/*
	 *  A B C
@@ -1456,7 +1457,7 @@ intel_tv_detect(struct drm_connector *connector)
	mode = reported_modes[0];
	drm_mode_set_crtcinfo(&mode, CRTC_INTERLACE_HALVE_V);

	if (encoder->crtc) {
	if (encoder->crtc && encoder->crtc->enabled) {
		type = intel_tv_detect_type(encoder->crtc, intel_output);
	} else {
		crtc = intel_get_load_detect_pipe(intel_output, &mode, &dpms_mode);
@@ -1467,6 +1468,8 @@ intel_tv_detect(struct drm_connector *connector)
			type = -1;
	}

	tv_priv->type = type;

	if (type < 0)
		return connector_status_disconnected;