From: Stephen Rothwell Date: Fri, 28 Jun 2013 03:30:27 +0000 (+1000) Subject: Merge remote-tracking branch 'drm-intel/for-linux-next' X-Git-Tag: next-20130628~66 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c64f522636f08397206263f5a869e082fdaa8921;p=karo-tx-linux.git Merge remote-tracking branch 'drm-intel/for-linux-next' Conflicts: drivers/gpu/drm/i915/intel_display.c drivers/gpu/drm/i915/intel_fb.c drivers/gpu/drm/i915/intel_sdvo.c --- c64f522636f08397206263f5a869e082fdaa8921 diff --cc drivers/gpu/drm/i915/intel_display.c index 6eb99e13c37d,961cb8385650..83f30fad65b9 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@@ -8177,11 -8240,14 +8240,19 @@@ check_crtc_state(struct drm_device *dev active = dev_priv->display.get_pipe_config(crtc, &pipe_config); + + /* hw state is inconsistent with the pipe A quirk */ + if (crtc->pipe == PIPE_A && dev_priv->quirks & QUIRK_PIPEA_FORCE) + active = crtc->active; + + list_for_each_entry(encoder, &dev->mode_config.encoder_list, + base.head) { + if (encoder->base.crtc != &crtc->base) + continue; + if (encoder->get_config) + encoder->get_config(encoder, &pipe_config); + } + WARN(crtc->active != active, "crtc active state doesn't match with hw state " "(expected %i, found %i)\n", crtc->active, active); diff --cc drivers/gpu/drm/i915/intel_fb.c index 3b03c3c6cc5d,244060ad354b..dff669e2387f --- a/drivers/gpu/drm/i915/intel_fb.c +++ b/drivers/gpu/drm/i915/intel_fb.c @@@ -291,7 -292,9 +292,7 @@@ void intel_fb_output_poll_changed(struc void intel_fb_restore_mode(struct drm_device *dev) { int ret; - drm_i915_private_t *dev_priv = dev->dev_private; + struct drm_i915_private *dev_priv = dev->dev_private; - struct drm_mode_config *config = &dev->mode_config; - struct drm_plane *plane; if (INTEL_INFO(dev)->num_pipes == 0) return; diff --cc drivers/gpu/drm/i915/intel_sdvo.c index c55841937705,b8e1623be30d..2628d5622449 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c @@@ -2848,18 -2889,12 +2889,6 @@@ bool intel_sdvo_init(struct drm_device } } - hotplug_mask = 0; - if (IS_G4X(dev)) { - hotplug_mask = intel_sdvo->is_sdvob ? - SDVOB_HOTPLUG_INT_STATUS_G4X : SDVOC_HOTPLUG_INT_STATUS_G4X; - } else if (IS_GEN4(dev)) { - hotplug_mask = intel_sdvo->is_sdvob ? - SDVOB_HOTPLUG_INT_STATUS_I965 : SDVOC_HOTPLUG_INT_STATUS_I965; - } else { - hotplug_mask = intel_sdvo->is_sdvob ? - SDVOB_HOTPLUG_INT_STATUS_I915 : SDVOC_HOTPLUG_INT_STATUS_I915; - } - /* Only enable the hotplug irq if we need it, to work around noisy - * hotplug lines. - */ - if (intel_sdvo->hotplug_active) - intel_encoder->hpd_pin = HPD_SDVO_B ? HPD_SDVO_B : HPD_SDVO_C; -- intel_encoder->compute_config = intel_sdvo_compute_config; intel_encoder->disable = intel_disable_sdvo; intel_encoder->mode_set = intel_sdvo_mode_set;