Merge tag 'v3.10-rc7' into drm-next
authorDave Airlie <airlied@redhat.com>
Thu, 27 Jun 2013 10:40:44 +0000 (20:40 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 27 Jun 2013 10:40:44 +0000 (20:40 +1000)
Linux 3.10-rc7

The sdvo lvds fix in this -fixes pull

commit c3456fb3e4712d0448592af3c5d644c9472cd3c1
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Mon Jun 10 09:47:58 2013 +0200

    drm/i915: prefer VBT modes for SVDO-LVDS over EDID

has a silent functional conflict with

commit 990256aec2f10800595dddf4d1c3441fcd6b2616
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Fri May 31 12:17:07 2013 +0000

    drm: Add probed modes in probe order

in drm-next. W simply need to add the vbt modes before edid modes, i.e. the
other way round than now.

Conflicts:
drivers/gpu/drm/drm_prime.c
drivers/gpu/drm/i915/intel_sdvo.c

1  2 
drivers/gpu/drm/drm_prime.c
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_lvds.c
drivers/gpu/drm/i915/intel_sdvo.c
drivers/gpu/drm/mgag200/mgag200_mode.c

index d92853e06dbb9aee6c120d983fb23eeb00b72584,5b7b9110254b1669d046c85d2429a6d93cb2a36c..e57c675db840a61449f596e5c69177844545a4f5
@@@ -210,8 -185,12 +210,7 @@@ static const struct dma_buf_ops drm_gem
  struct dma_buf *drm_gem_prime_export(struct drm_device *dev,
                                     struct drm_gem_object *obj, int flags)
  {
-       return dma_buf_export(obj, &drm_gem_prime_dmabuf_ops, obj->size,
-                            0600);
 -      if (dev->driver->gem_prime_pin) {
 -              int ret = dev->driver->gem_prime_pin(obj);
 -              if (ret)
 -                      return ERR_PTR(ret);
 -      }
+       return dma_buf_export(obj, &drm_gem_prime_dmabuf_ops, obj->size, flags);
  }
  EXPORT_SYMBOL(drm_gem_prime_export);
  
Simple merge
index dff9d4e5b92b15ba985d6153e949c7b970dac0f3,56746dcac40f116fe58c25e648ee9887a0f63a39..6eb99e13c37d03b86325e5e5a24fb70f0c2c1503
@@@ -8175,8 -7934,14 +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);
Simple merge
index 7068195376ef0c7ab2a912d08d45ece43d3b488d,d4ea6c265ce113ca4a179f41ff2ba061ceff62e0..c5584193770522b2d9e0ec9bc4daceea46f3a954
@@@ -1843,19 -1771,22 +1843,13 @@@ static void intel_sdvo_get_lvds_modes(s
        struct drm_i915_private *dev_priv = connector->dev->dev_private;
        struct drm_display_mode *newmode;
  
 -      /*
 -       * Attempt to get the mode list from DDC.
 -       * Assume that the preferred modes are
 -       * arranged in priority order.
 -       */
 -      intel_ddc_get_modes(connector, &intel_sdvo->ddc);
 -
        /*
-        * Attempt to get the mode list from DDC.
-        * Assume that the preferred modes are
-        * arranged in priority order.
+        * 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.
++       * SDVO->LVDS transcoders can't cope with the EDID mode.
         */
-       intel_ddc_get_modes(connector, intel_sdvo->i2c);
-       if (list_empty(&connector->probed_modes) == false)
-               goto end;
-       /* Fetch modes from VBT */
 -      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 |
                }
        }
  
- end:
++      /*
++       * Attempt to get the mode list from DDC.
++       * Assume that the preferred modes are
++       * arranged in priority order.
++       */
++      intel_ddc_get_modes(connector, &intel_sdvo->ddc);
++
        list_for_each_entry(newmode, &connector->probed_modes, head) {
                if (newmode->type & DRM_MODE_TYPE_PREFERRED) {
                        intel_sdvo->sdvo_lvds_fixed_mode =