Merge tag 'drm-intel-next-2013-08-23' of git://people.freedesktop.org/~danvet/drm...
authorDave Airlie <airlied@redhat.com>
Thu, 29 Aug 2013 23:47:41 +0000 (09:47 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 29 Aug 2013 23:47:41 +0000 (09:47 +1000)
Need to get my stuff out the door ;-) Highlights:
- pc8+ support from Paulo
- more vma patches from Ben.
- Kconfig option to enable preliminary support by default (Josh
  Triplett)
- Optimized cpu cache flush handling and support for write-through caching
  of display planes on Iris (Chris)
- rc6 tuning from Stéphane Marchesin for more stability
- VECS seqno wrap/semaphores fix (Ben)
- a pile of smaller cleanups and improvements all over

Note that I've ditched Ben's execbuf vma conversion for 3.12 since not yet
ready. But there's still other vma conversion stuff in here.

* tag 'drm-intel-next-2013-08-23' of git://people.freedesktop.org/~danvet/drm-intel: (62 commits)
  drm/i915: Print seqnos as unsigned in debugfs
  drm/i915: Fix context size calculation on SNB/IVB/VLV
  drm/i915: Use POSTING_READ in lcpll code
  drm/i915: enable Package C8+ by default
  drm/i915: add i915.pc8_timeout function
  drm/i915: add i915_pc8_status debugfs file
  drm/i915: allow package C8+ states on Haswell (disabled)
  drm/i915: fix SDEIMR assertion when disabling LCPLL
  drm/i915: grab force_wake when restoring LCPLL
  drm/i915: drop WaMbcDriverBootEnable workaround
  drm/i915: Cleaning up the relocate entry function
  drm/i915: merge HSW and SNB PM irq handlers
  drm/i915: fix how we mask PMIMR when adding work to the queue
  drm/i915: don't queue PM events we won't process
  drm/i915: don't disable/reenable IVB error interrupts when not needed
  drm/i915: add dev_priv->pm_irq_mask
  drm/i915: don't update GEN6_PMIMR when it's not needed
  drm/i915: wrap GEN6_PMIMR changes
  drm/i915: wrap GTIMR changes
  drm/i915: add the FCLK case to intel_ddi_get_cdclk_freq
  ...

1  2 
drivers/gpu/drm/Kconfig
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_dmabuf.c
drivers/gpu/drm/i915/i915_gem_stolen.c
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_hdmi.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -88,11 -97,26 +97,15 @@@ static void i915_gem_unmap_dma_buf(stru
        dma_unmap_sg(attachment->dev, sg->sgl, sg->nents, dir);
        sg_free_table(sg);
        kfree(sg);
+       i915_gem_object_unpin_pages(obj);
+       mutex_unlock(&obj->base.dev->struct_mutex);
  }
  
 -static void i915_gem_dmabuf_release(struct dma_buf *dma_buf)
 -{
 -      struct drm_i915_gem_object *obj = dma_buf->priv;
 -
 -      if (obj->base.export_dma_buf == dma_buf) {
 -              /* drop the reference on the export fd holds */
 -              obj->base.export_dma_buf = NULL;
 -              drm_gem_object_unreference_unlocked(&obj->base);
 -      }
 -}
 -
  static void *i915_gem_dmabuf_vmap(struct dma_buf *dma_buf)
  {
-       struct drm_i915_gem_object *obj = dma_buf->priv;
+       struct drm_i915_gem_object *obj = dma_buf_to_obj(dma_buf);
        struct drm_device *dev = obj->base.dev;
        struct sg_page_iter sg_iter;
        struct page **pages;
@@@ -422,9 -403,10 +420,11 @@@ i915_gem_object_create_stolen_for_preal
  
        return obj;
  
+ err_vma:
+       i915_gem_vma_destroy(vma);
  err_out:
 -      drm_mm_put_block(stolen);
 +      drm_mm_remove_node(stolen);
 +      kfree(stolen);
        drm_gem_object_unreference(&obj->base);
        return NULL;
  }
Simple merge
Simple merge
Simple merge