From: Stephen Rothwell Date: Wed, 19 Jun 2013 02:55:48 +0000 (+1000) Subject: Merge remote-tracking branch 'drm/drm-next' X-Git-Tag: next-20130619~63 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=26153180d3d4172765048d27f2efb5ff9cb1309d;p=karo-tx-linux.git Merge remote-tracking branch 'drm/drm-next' Conflicts: drivers/gpu/drm/i915/intel_sdvo.c --- 26153180d3d4172765048d27f2efb5ff9cb1309d diff --cc drivers/gpu/drm/i915/intel_display.c index 56746dcac40f,dff9d4e5b92b..6eb99e13c37d --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@@ -7934,14 -8175,8 +8175,13 @@@ intel_modeset_check_state(struct drm_de "crtc's computed enabled state doesn't match tracked enabled state " "(expected %i, found %i)\n", enabled, crtc->base.enabled); - memset(&pipe_config, 0, sizeof(pipe_config)); 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; + 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_sdvo.c index d4ea6c265ce1,7068195376ef..7d31165e1904 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c @@@ -1776,17 -1848,14 +1848,17 @@@ static void intel_sdvo_get_lvds_modes(s * Assume that the preferred modes are * arranged in priority order. */ - intel_ddc_get_modes(connector, intel_sdvo->i2c); - if (list_empty(&connector->probed_modes) == false) - goto end; + intel_ddc_get_modes(connector, &intel_sdvo->ddc); - /* Fetch modes from VBT */ + /* + * Fetch modes from VBT. For SDVO prefer the VBT mode since some + * SDVO->LVDS transcoders can't cope with the EDID mode. Since + * drm_mode_probed_add adds the mode at the head of the list we add it + * last. + */ - if (dev_priv->sdvo_lvds_vbt_mode != NULL) { + if (dev_priv->vbt.sdvo_lvds_vbt_mode != NULL) { newmode = drm_mode_duplicate(connector->dev, - dev_priv->sdvo_lvds_vbt_mode); + dev_priv->vbt.sdvo_lvds_vbt_mode); if (newmode != NULL) { /* Guarantee the mode is preferred */ newmode->type = (DRM_MODE_TYPE_PREFERRED |