mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 03:46:42 +07:00
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: Zhenyu Wang <zhenyu.z.wang@intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
d2d9f23240
commit
bf5a269a4c
@ -1406,6 +1406,7 @@ intel_tv_detect_type (struct drm_crtc *crtc, struct intel_output *intel_output)
|
|||||||
tv_dac = I915_READ(TV_DAC);
|
tv_dac = I915_READ(TV_DAC);
|
||||||
I915_WRITE(TV_DAC, save_tv_dac);
|
I915_WRITE(TV_DAC, save_tv_dac);
|
||||||
I915_WRITE(TV_CTL, save_tv_ctl);
|
I915_WRITE(TV_CTL, save_tv_ctl);
|
||||||
|
intel_wait_for_vblank(dev);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* A B C
|
* A B C
|
||||||
@ -1456,7 +1457,7 @@ intel_tv_detect(struct drm_connector *connector)
|
|||||||
mode = reported_modes[0];
|
mode = reported_modes[0];
|
||||||
drm_mode_set_crtcinfo(&mode, CRTC_INTERLACE_HALVE_V);
|
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);
|
type = intel_tv_detect_type(encoder->crtc, intel_output);
|
||||||
} else {
|
} else {
|
||||||
crtc = intel_get_load_detect_pipe(intel_output, &mode, &dpms_mode);
|
crtc = intel_get_load_detect_pipe(intel_output, &mode, &dpms_mode);
|
||||||
@ -1467,6 +1468,8 @@ intel_tv_detect(struct drm_connector *connector)
|
|||||||
type = -1;
|
type = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tv_priv->type = type;
|
||||||
|
|
||||||
if (type < 0)
|
if (type < 0)
|
||||||
return connector_status_disconnected;
|
return connector_status_disconnected;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user