]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'drm-intel/for-linux-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 17 Jul 2013 00:59:51 +0000 (10:59 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 17 Jul 2013 00:59:51 +0000 (10:59 +1000)
Conflicts:
drivers/gpu/drm/i915/i915_gem.c

13 files changed:
1  2 
drivers/gpu/drm/drm_mm.c
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_stolen.c
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_lvds.c
drivers/gpu/drm/i915/intel_pm.c
drivers/gpu/drm/i915/intel_ringbuffer.c
include/drm/drm_mm.h

Simple merge
Simple merge
Simple merge
Simple merge
index 97afd2639fb63a1e240fce2c6f97f53fd9f82e98,df6ba10bf3a09453ad6815761f500ef5cd296c5e..c9d9d20d0f99be1aa5699ad7e50f1dd5e37c6819
@@@ -2666,27 -2671,12 +2663,27 @@@ static void i965_write_fence_reg(struc
                fence_pitch_shift = I965_FENCE_PITCH_SHIFT;
        }
  
 +      fence_reg += reg * 8;
 +
 +      /* To w/a incoherency with non-atomic 64-bit register updates,
 +       * we split the 64-bit update into two 32-bit writes. In order
 +       * for a partial fence not to be evaluated between writes, we
 +       * precede the update with write to turn off the fence register,
 +       * and only enable the fence as the last step.
 +       *
 +       * For extra levels of paranoia, we make sure each step lands
 +       * before applying the next step.
 +       */
 +      I915_WRITE(fence_reg, 0);
 +      POSTING_READ(fence_reg);
 +
        if (obj) {
-               u32 size = obj->gtt_space->size;
+               u32 size = i915_gem_obj_ggtt_size(obj);
 +              uint64_t val;
  
-               val = (uint64_t)((obj->gtt_offset + size - 4096) &
+               val = (uint64_t)((i915_gem_obj_ggtt_offset(obj) + size - 4096) &
                                 0xfffff000) << 32;
-               val |= obj->gtt_offset & 0xfffff000;
+               val |= i915_gem_obj_ggtt_offset(obj) & 0xfffff000;
                val |= (uint64_t)((obj->stride / 128) - 1) << fence_pitch_shift;
                if (obj->tiling_mode == I915_TILING_Y)
                        val |= 1 << I965_FENCE_TILING_Y_SHIFT;
@@@ -3992,11 -4006,8 +3978,6 @@@ i915_gem_idle(struct drm_device *dev
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                i915_gem_evict_everything(dev);
  
-       /* Hack!  Don't let anybody do execbuf while we don't control the chip.
-        * We need to replace this with a semaphore, or something.
-        * And not confound mm.suspended!
-        */
-       dev_priv->mm.suspended = 1;
 -      i915_gem_reset_fences(dev);
 -
        del_timer_sync(&dev_priv->gpu_error.hangcheck_timer);
  
        i915_kernel_lost_context(dev);
index 982d4732cecff93e45370f30dfab03cc1bfdb32a,76c3b8699168f19867e749c7ec22dbc798a23759..5c1a535d5072a34c62b9ab563e592e569d425acc
@@@ -147,10 -164,10 +164,10 @@@ int i915_gem_stolen_setup_compression(s
  {
        struct drm_i915_private *dev_priv = dev->dev_private;
  
 -      if (dev_priv->mm.stolen_base == 0)
 +      if (!drm_mm_initialized(&dev_priv->mm.stolen))
                return -ENODEV;
  
-       if (size < dev_priv->cfb_size)
+       if (size < dev_priv->fbc.size)
                return 0;
  
        /* Release any current block */
@@@ -333,8 -350,9 +353,9 @@@ i915_gem_object_create_stolen_for_preal
        struct drm_i915_private *dev_priv = dev->dev_private;
        struct drm_i915_gem_object *obj;
        struct drm_mm_node *stolen;
+       int ret;
  
 -      if (dev_priv->mm.stolen_base == 0)
 +      if (!drm_mm_initialized(&dev_priv->mm.stolen))
                return NULL;
  
        DRM_DEBUG_KMS("creating preallocated stolen object: stolen_offset=%x, gtt_offset=%x, size=%x\n",
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge