mirror of https://gitee.com/openkylin/linux.git
drm/i915: Use atomic state in tv load detection.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1455697119-31416-4-git-send-email-maarten.lankhorst@linux.intel.com
This commit is contained in:
parent
c8ecb2f162
commit
0eadc62462
|
@ -1182,10 +1182,9 @@ static int
|
||||||
intel_tv_detect_type(struct intel_tv *intel_tv,
|
intel_tv_detect_type(struct intel_tv *intel_tv,
|
||||||
struct drm_connector *connector)
|
struct drm_connector *connector)
|
||||||
{
|
{
|
||||||
struct drm_encoder *encoder = &intel_tv->base.base;
|
struct drm_crtc *crtc = connector->state->crtc;
|
||||||
struct drm_crtc *crtc = encoder->crtc;
|
|
||||||
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
|
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
|
||||||
struct drm_device *dev = encoder->dev;
|
struct drm_device *dev = connector->dev;
|
||||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||||
u32 tv_ctl, save_tv_ctl;
|
u32 tv_ctl, save_tv_ctl;
|
||||||
u32 tv_dac, save_tv_dac;
|
u32 tv_dac, save_tv_dac;
|
||||||
|
@ -1234,8 +1233,7 @@ intel_tv_detect_type(struct intel_tv *intel_tv,
|
||||||
I915_WRITE(TV_DAC, tv_dac);
|
I915_WRITE(TV_DAC, tv_dac);
|
||||||
POSTING_READ(TV_DAC);
|
POSTING_READ(TV_DAC);
|
||||||
|
|
||||||
intel_wait_for_vblank(intel_tv->base.base.dev,
|
intel_wait_for_vblank(dev, intel_crtc->pipe);
|
||||||
to_intel_crtc(intel_tv->base.base.crtc)->pipe);
|
|
||||||
|
|
||||||
type = -1;
|
type = -1;
|
||||||
tv_dac = I915_READ(TV_DAC);
|
tv_dac = I915_READ(TV_DAC);
|
||||||
|
@ -1265,8 +1263,7 @@ intel_tv_detect_type(struct intel_tv *intel_tv,
|
||||||
POSTING_READ(TV_CTL);
|
POSTING_READ(TV_CTL);
|
||||||
|
|
||||||
/* For unknown reasons the hw barfs if we don't do this vblank wait. */
|
/* For unknown reasons the hw barfs if we don't do this vblank wait. */
|
||||||
intel_wait_for_vblank(intel_tv->base.base.dev,
|
intel_wait_for_vblank(dev, intel_crtc->pipe);
|
||||||
to_intel_crtc(intel_tv->base.base.crtc)->pipe);
|
|
||||||
|
|
||||||
/* Restore interrupt config */
|
/* Restore interrupt config */
|
||||||
if (connector->polled & DRM_CONNECTOR_POLL_HPD) {
|
if (connector->polled & DRM_CONNECTOR_POLL_HPD) {
|
||||||
|
|
Loading…
Reference in New Issue