1. 30 4月, 2013 1 次提交
    • D
      drm/mm: fix dump table BUG · 3a359f0b
      Daniel Vetter 提交于
      In
      
      commit 9e8944ab
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Thu Nov 15 11:32:17 2012 +0000
      
          drm: Introduce an iterator over holes in the drm_mm range manager
      
      helpers and iterators for hole handling have been introduced with some
      debug BUG_ONs sprinkled over. Unfortunately this broke the mm dumper
      which unconditionally tried to compute the size of the very first
      hole.
      
      While at it unify the code a bit with the hole dumping in the loop.
      
      v2: Extract a hole dump helper.
      Reported-by: NChristopher Harvey <charvey@matrox.com>
      Cc: Christopher Harvey <charvey@matrox.com>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@vger.kernel.org
      Acked-by: NDave Airlie <airlied@redhat.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3a359f0b
  2. 08 1月, 2013 1 次提交
    • C
      drm: Only evict the blocks required to create the requested hole · 901593f2
      Chris Wilson 提交于
      Avoid clobbering adjacent blocks if they happen to expire earlier and
      amalgamate together to form the requested hole.
      
      In passing this fixes a regression from
      commit ea7b1dd4
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Fri Feb 18 17:59:12 2011 +0100
      
          drm: mm: track free areas implicitly
      
      which swaps the end address for size (with a potential overflow) and
      effectively causes the eviction code to clobber almost all earlier
      buffers above the evictee.
      
      v2: Check the original hole not the adjusted as the coloring may confuse
      us when later searching for the overlapping nodes. Also make sure that
      we do apply the range restriction and color adjustment in the same
      order for both scanning, searching and insertion.
      
      v3: Send the version that was actually tested.
      
      Note that this seems to be ducttape of decent quality ot paper over
      some of our unbind related gpu hangs reported since 3.7. It is not
      fully effective though, and certainly doesn't fix the underlying bug.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      [danvet: Added note plus bugzilla link and tested-by.]
      Cc: stable@vger.kernel.org
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55984Tested-by: NNorbert Preining <preining@logic.at>
      Acked-by: Dave Airlie <airlied@gmail.com
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      901593f2
  3. 19 12月, 2012 1 次提交
  4. 01 12月, 2012 2 次提交
  5. 03 10月, 2012 1 次提交
  6. 16 7月, 2012 1 次提交
    • C
      drm: Add colouring to the range allocator · 6b9d89b4
      Chris Wilson 提交于
      In order to support snoopable memory on non-LLC architectures (so that
      we can bind vgem objects into the i915 GATT for example), we have to
      avoid the prefetcher on the GPU from crossing memory domains and so
      prevent allocation of a snoopable PTE immediately following an uncached
      PTE. To do that, we need to extend the range allocator with support for
      tracking and segregating different node colours.
      
      This will be used by i915 to segregate memory domains within the GTT.
      
      v2: Now with more drm_mm helpers and less driver interference.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Dave Airlie <airlied@redhat.com
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Cc: Jerome Glisse <jglisse@redhat.com>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@gmail.com>
      6b9d89b4
  7. 01 11月, 2011 1 次提交
  8. 09 5月, 2011 1 次提交
  9. 31 3月, 2011 1 次提交
  10. 23 2月, 2011 4 次提交
  11. 28 10月, 2010 1 次提交
  12. 27 8月, 2010 1 次提交
  13. 07 7月, 2010 5 次提交
  14. 15 2月, 2010 1 次提交
  15. 23 12月, 2009 1 次提交
  16. 10 12月, 2009 2 次提交
  17. 04 12月, 2009 1 次提交
  18. 24 11月, 2009 1 次提交
    • J
      drm: mm always protect change to unused_nodes with unused_lock spinlock · a698cf34
      Jerome Glisse 提交于
      unused_nodes modification needs to be protected by unused_lock spinlock.
      Here is an example of an usage where there is no such protection without
      this patch.
      
        Process 1: 1-drm_mm_pre_get(this function modify unused_nodes list)
                   2-spin_lock(spinlock protecting mm struct)
                   3-drm_mm_put_block(this function might modify unused_nodes
                     list but doesn't protect modification with unused_lock)
                   4-spin_unlock(spinlock protecting mm struct)
        Process2:  1-drm_mm_pre_get(this function modify unused_nodes list)
      At this point Process1 & Process2 might both be doing modification to
      unused_nodes list. This patch add unused_lock protection into
      drm_mm_put_block to avoid such issue.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      a698cf34
  19. 02 9月, 2009 1 次提交
  20. 19 6月, 2009 1 次提交
  21. 15 6月, 2009 1 次提交
  22. 12 6月, 2009 1 次提交
  23. 29 12月, 2008 1 次提交
    • D
      DRM: add mode setting support · f453ba04
      Dave Airlie 提交于
      Add mode setting support to the DRM layer.
      
      This is a fairly big chunk of work that allows DRM drivers to provide
      full output control and configuration capabilities to userspace.  It was
      motivated by several factors:
        - the fb layer's APIs aren't suited for anything but simple
          configurations
        - coordination between the fb layer, DRM layer, and various userspace
          drivers is poor to non-existent (radeonfb excepted)
        - user level mode setting drivers makes displaying panic & oops
          messages more difficult
        - suspend/resume of graphics state is possible in many more
          configurations with kernel level support
      
      This commit just adds the core DRM part of the mode setting APIs.
      Driver specific commits using these new structure and APIs will follow.
      
      Co-authors: Jesse Barnes <jbarnes@virtuousgeek.org>, Jakob Bornecrantz <jakob@tungstengraphics.com>
      Contributors: Alan Hourihane <alanh@tungstengraphics.com>, Maarten Maathuis <madman2003@gmail.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      f453ba04
  24. 18 10月, 2008 1 次提交
    • E
      drm: Add GEM ("graphics execution manager") to i915 driver. · 673a394b
      Eric Anholt 提交于
      GEM allows the creation of persistent buffer objects accessible by the
      graphics device through new ioctls for managing execution of commands on the
      device.  The userland API is almost entirely driver-specific to ensure that
      any driver building on this model can easily map the interface to individual
      driver requirements.
      
      GEM is used by the 2d driver for managing its internal state allocations and
      will be used for pixmap storage to reduce memory consumption and enable
      zero-copy GLX_EXT_texture_from_pixmap, and in the 3d driver is used to enable
      GL_EXT_framebuffer_object and GL_ARB_pixel_buffer_object.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      673a394b
  25. 14 7月, 2008 1 次提交
    • D
      drm: reorganise drm tree to be more future proof. · c0e09200
      Dave Airlie 提交于
      With the coming of kernel based modesetting and the memory manager stuff,
      the everything in one directory approach was getting very ugly and
      starting to be unmanageable.
      
      This restructures the drm along the lines of other kernel components.
      
      It creates a drivers/gpu/drm directory and moves the hw drivers into
      subdirectores. It moves the includes into an include/drm, and
      sets up the unifdef for the userspace headers we should be exporting.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c0e09200
  26. 07 2月, 2008 1 次提交
  27. 20 10月, 2007 1 次提交
  28. 11 7月, 2007 1 次提交
  29. 11 3月, 2007 1 次提交
  30. 08 2月, 2007 1 次提交
    • T
      drm: update core memory manager from git drm tree · 1d58420b
      Thomas Hellstrom 提交于
      Remove the memory manager parameter from the put_block function, as this
      makes the client code a lot cleaner. Prepare buffer manager for lock and
      unlock calls.
      Fix buggy aligned allocations.
      Remove the stupid root_node field from the core memory manager.
      Support multi-page buffer offset alignments
      Add improved alignment functionality to the core memory manager.
      This makes an allocated block actually align itself and returns any
      wasted space to the manager.
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      1d58420b
  31. 22 9月, 2006 1 次提交