Merge tag 'drm-intel-next-2014-04-16' of git://anongit.freedesktop.org/drm-intel...
authorDave Airlie <airlied@redhat.com>
Wed, 30 Apr 2014 23:11:37 +0000 (09:11 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 30 Apr 2014 23:11:37 +0000 (09:11 +1000)
drm-intel-next-2014-04-16:
- vlv infoframe fixes from Jesse
- dsi/mipi fixes from Shobhit
- gen8 pageflip fixes for LRI/SRM from Damien
- cmd parser fixes from Brad Volkin
- some prep patches for CHV, DRRS, ...
- and tons of little things all over
drm-intel-next-2014-04-04:
- cmd parser for gen7 but only in enforcing and not yet granting mode - the
  batch copying stuff is still missing. Also performance is a bit ... rough
  (Brad Volkin + OACONTROL fix from Ken).
- deprecate UMS harder (i.e. CONFIG_BROKEN)
- interrupt rework from Paulo Zanoni
- runtime PM support for bdw and snb, again from Paulo
- a pile of refactorings from various people all over the place to prep for new
  stuff (irq reworks, power domain polish, ...)

drm-intel-next-2014-04-04:
- cmd parser for gen7 but only in enforcing and not yet granting mode - the
  batch copying stuff is still missing. Also performance is a bit ... rough
  (Brad Volkin + OACONTROL fix from Ken).
- deprecate UMS harder (i.e. CONFIG_BROKEN)
- interrupt rework from Paulo Zanoni
- runtime PM support for bdw and snb, again from Paulo
- a pile of refactorings from various people all over the place to prep for new
  stuff (irq reworks, power domain polish, ...)

Conflicts:
drivers/gpu/drm/i915/i915_gem_context.c

15 files changed:
1  2 
drivers/gpu/drm/drm_cache.c
drivers/gpu/drm/i915/Kconfig
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_context.c
drivers/gpu/drm/i915/i915_gem_execbuffer.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_bios.c
drivers/gpu/drm/i915/intel_bios.h
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_dp.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_hdmi.c
drivers/gpu/drm/i915/intel_panel.c
drivers/gpu/drm/i915/intel_pm.c

Simple merge
Simple merge
Simple merge
Simple merge
index d72db15afa02fde49c56693bbf84ce227038298d,30b355afb3621eb54d96f37701b26c11fb28aaaf..f77b4c126465e1cec2a63f9f7614a079bc6e0d27
@@@ -231,32 -232,40 +231,40 @@@ __create_hw_context(struct drm_device *
                return ERR_PTR(-ENOMEM);
  
        kref_init(&ctx->ref);
 -      ctx->obj = i915_gem_alloc_object(dev, dev_priv->hw_context_size);
 -      INIT_LIST_HEAD(&ctx->link);
 -      if (ctx->obj == NULL) {
 -              kfree(ctx);
 -              DRM_DEBUG_DRIVER("Context object allocated failed\n");
 -              return ERR_PTR(-ENOMEM);
 -      }
 +      list_add_tail(&ctx->link, &dev_priv->context_list);
  
 -      /*
 -       * Try to make the context utilize L3 as well as LLC.
 -       *
 -       * On VLV we don't have L3 controls in the PTEs so we
 -       * shouldn't touch the cache level, especially as that
 -       * would make the object snooped which might have a
 -       * negative performance impact.
 -       */
 -      if (INTEL_INFO(dev)->gen >= 7 && !IS_VALLEYVIEW(dev)) {
 -              ret = i915_gem_object_set_cache_level(ctx->obj,
 -                                                    I915_CACHE_L3_LLC);
 -              /* Failure shouldn't ever happen this early */
 -              if (WARN_ON(ret))
 +      if (dev_priv->hw_context_size) {
 +              ctx->obj = i915_gem_alloc_object(dev, dev_priv->hw_context_size);
 +              if (ctx->obj == NULL) {
 +                      ret = -ENOMEM;
                        goto err_out;
 -      }
 +              }
  
-               if (INTEL_INFO(dev)->gen >= 7) {
 -      list_add_tail(&ctx->link, &dev_priv->context_list);
++              /*
++               * Try to make the context utilize L3 as well as LLC.
++               *
++               * On VLV we don't have L3 controls in the PTEs so we
++               * shouldn't touch the cache level, especially as that
++               * would make the object snooped which might have a
++               * negative performance impact.
++               */
++              if (INTEL_INFO(dev)->gen >= 7 && !IS_VALLEYVIEW(dev)) {
 +                      ret = i915_gem_object_set_cache_level(ctx->obj,
 +                                                            I915_CACHE_L3_LLC);
 +                      /* Failure shouldn't ever happen this early */
 +                      if (WARN_ON(ret))
 +                              goto err_out;
 +              }
 +      }
  
        /* Default context will never have a file_priv */
 -      if (file_priv == NULL)
 -              return ctx;
 -
 -      ret = idr_alloc(&file_priv->context_idr, ctx, DEFAULT_CONTEXT_ID, 0,
 -                      GFP_KERNEL);
 -      if (ret < 0)
 -              goto err_out;
 +      if (file_priv != NULL) {
 +              ret = idr_alloc(&file_priv->context_idr, ctx,
 +                              DEFAULT_CONTEXT_ID, 0, GFP_KERNEL);
 +              if (ret < 0)
 +                      goto err_out;
 +      } else
 +              ret = DEFAULT_CONTEXT_ID;
  
        ctx->file_priv = file_priv;
        ctx->id = ret;
Simple merge
Simple merge
Simple merge
Simple merge
index dfa85289f28f301fe259b522b45ef1521489175e,b50b170dc2e88bb64d11f9dff35d7d71fbc5972d..44df493ad399722f8da06a2a1566efb70a46cd19
@@@ -3619,10 -3784,10 +3785,11 @@@ static bool intel_edp_init_connector(st
  {
        struct drm_connector *connector = &intel_connector->base;
        struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
 -      struct drm_device *dev = intel_dig_port->base.base.dev;
 +      struct intel_encoder *intel_encoder = &intel_dig_port->base;
 +      struct drm_device *dev = intel_encoder->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
        struct drm_display_mode *fixed_mode = NULL;
+       struct drm_display_mode *downclock_mode = NULL;
        bool has_dpcd;
        struct drm_display_mode *scan;
        struct edid *edid;
Simple merge
Simple merge
Simple merge
Simple merge