1. 07 4月, 2010 2 次提交
    • D
      drm/kms/fb: move to using fb helper crtc grouping instead of core crtc list · 8be48d92
      Dave Airlie 提交于
      This move to using the list of crtcs in the fb helper and cleans up the
      whole picking code, now we store the crtc/connectors we want directly
      into the modeset and we use the modeset directly to set the mode.
      
      Fixes from James Simmons and Ben Skeggs.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      8be48d92
    • D
      drm/fb: fix fbdev object model + cleanup properly. · 38651674
      Dave Airlie 提交于
      The fbdev layer in the kms code should act like a consumer of the kms services and avoid having relying on information being store in the kms core structures in order for it to work.
      
      This patch
      
      a) removes the info pointer/psuedo palette from the core drm_framebuffer structure and moves it to the fbdev helper layer, it also removes the core drm keeping a list of kernel kms fbdevs.
      b) migrated all the fb helper functions out of the crtc helper file into the fb helper file.
      c) pushed the fb probing/hotplug control into the driver
      d) makes the surface sizes into a structure for ease of passing
      This changes the intel/radeon/nouveau drivers to use the new helper.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      38651674
  2. 15 3月, 2010 2 次提交
  3. 01 3月, 2010 1 次提交
  4. 27 2月, 2010 1 次提交
  5. 25 2月, 2010 2 次提交
  6. 23 2月, 2010 1 次提交
    • P
      drm: Add generic multipart buffer. · 7a9f0dd9
      Pauli Nieminen 提交于
      Allocating multiple pages of memory for data that is coming
      from user space may fail. To fix memory allocation failures
      the buffer object should be split to multiple independ pages.
      
      drm buffer provides generic interface to copy and process
      large data arrays from user space.
      
      Interface includes allocation and free functions to allocate
      the buffer object and data storage pages.
      
      All access operations are performed relative to a internal
      pointer which is advanced with drm_buffer_advance function.
      
      The buffer can be accessed using drm_buffer_pointer_to_XXX
      functions if it is known that requested object doesn't split
      over a page boundary. These functions don't do any error
      checking to maximize performance.
      
      If there is large object which could be split there is special
      drm_buffer_read_object function. drm_buffer_read_object takes
      a pointer as argument which is used as temporary store for
      data if it is split over boundary in the buffer.
      Signed-off-by: NPauli Nieminen <suokkos@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      7a9f0dd9
  7. 11 2月, 2010 3 次提交
  8. 09 2月, 2010 3 次提交
  9. 01 2月, 2010 1 次提交
  10. 14 1月, 2010 1 次提交
  11. 08 1月, 2010 1 次提交
  12. 07 1月, 2010 2 次提交
  13. 18 12月, 2009 1 次提交
    • A
      drm: convert drm_ioctl to unlocked_ioctl · ed8b6704
      Arnd Bergmann 提交于
      drm_ioctl is called with the Big Kernel Lock held,
      which shows up very high in statistics on vfs_ioctl.
      
      Moving the lock into the drm_ioctl function itself
      makes sure we blame the right subsystem and it gets
      us one step closer to eliminating the locked version
      of fops->ioctl.
      
      Since drm_ioctl does not require the lock itself,
      we only need to hold it while calling the specific
      handler. The 32 bit conversion handlers do not
      interact with any other code, so they don't need
      the BKL here either and can just call drm_ioctl.
      
      As a bonus, this cleans up all the other users
      of drm_ioctl which now no longer have to find
      the inode or call lock_kernel.
      
      [airlied: squashed the non-driver bits
      of the second patch in here, this provides
      the flag for drivers to use to select unlocked
      ioctls - but doesn't modify any drivers].
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: David Airlie <airlied@linux.ie>
      Cc: dri-devel@lists.sourceforge.net
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      ed8b6704
  14. 15 12月, 2009 2 次提交
  15. 11 12月, 2009 2 次提交
    • B
      drm/nouveau: Add DRM driver for NVIDIA GPUs · 6ee73861
      Ben Skeggs 提交于
      This adds a drm/kms staging non-API stable driver for GPUs from NVIDIA.
      
      This driver is a KMS-based driver and requires a compatible nouveau
      userspace libdrm and nouveau X.org driver.
      
      This driver requires firmware files not available in this kernel tree,
      interested parties can find them via the nouveau project git archive.
      
      This driver is reverse engineered, and is in no way supported by nVidia.
      
      Support for nearly the complete range of nvidia hw from nv04->g80 (nv50)
      is available, and the kms driver should support driving nearly all
      output types (displayport is under development still) along with supporting
      suspend/resume.
      
      This work is all from the upstream nouveau project found at
      nouveau.freedesktop.org.
      
      The original authors list from nouveau git tree is:
      Anssi Hannula <anssi.hannula@iki.fi>
      Ben Skeggs <bskeggs@redhat.com>
      Francisco Jerez <currojerez@riseup.net>
      Maarten Maathuis <madman2003@gmail.com>
      Marcin Kościelnicki <koriakin@0x04.net>
      Matthew Garrett <mjg@redhat.com>
      Matt Parnell <mparnell@gmail.com>
      Patrice Mandin <patmandin@gmail.com>
      Pekka Paalanen <pq@iki.fi>
      Xavier Chantry <shiningxc@gmail.com>
      along with project founder Stephane Marchesin <marchesin@icps.u-strasbg.fr>
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      6ee73861
    • J
      drm/ttm: Convert ttm_buffer_object_init to use ttm_placement · 09855acb
      Jerome Glisse 提交于
      Convert ttm_buffer_object_init to use struct ttm_placement and
      rename to ttm_bo_init for consistency with function naming. This
      allow to give more complex placement at buffer creation. For
      instance you ask to allocate bo into vram first but if there is
      not enough vram you can give system as a second possible
      placement. It also allow to create buffer in a specific range.
      
      Also rename ttm_buffer_object_validate to ttm_bo_validate.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      09855acb
  16. 10 12月, 2009 4 次提交
  17. 08 12月, 2009 4 次提交
  18. 07 12月, 2009 4 次提交
  19. 04 12月, 2009 3 次提交
    • J
      drm: Add dirty ioctl and property · 884840aa
      Jakob Bornecrantz 提交于
      This commit adds a ioctl and property to allow userspace
      to notify the kernel that a framebuffer has changed. Instead
      of snooping the command stream this allows finer grained
      tracking of which areas have changed.
      
      The primary user for this functionality is virtual hardware
      like the vmware svga device, but also Xen hardware likes to
      be notify. There is also real hardware like DisplayLink and
      DisplayPort that might take advantage of this ioctl.
      Signed-off-by: NJakob Bornecrantz <jakob@vmware.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      884840aa
    • M
      drm/ttm: Fix build failure due to missing struct page · c3a73ba1
      Martin Michlmayr 提交于
      drm/ttm fails to build on MIPS because "struct page" is not known:
      | In file included from drivers/gpu/drm/ttm/ttm_memory.c:28:
      | include/drm/ttm/ttm_memory.h:154: warning: 'struct page' declared inside parameter list
      | include/drm/ttm/ttm_memory.h:154: warning: its scope is only this definition or declaration, which is probably not what you want
      | include/drm/ttm/ttm_memory.h:156: warning: 'struct page' declared inside parameter list
      | drivers/gpu/drm/ttm/ttm_memory.c:540: error: conflicting types for 'ttm_mem_global_alloc_page'
      | include/drm/ttm/ttm_memory.h:154: error: previous declaration of 'ttm_mem_global_alloc_page' was here
      | drivers/gpu/drm/ttm/ttm_memory.c:561: error: conflicting types for 'ttm_mem_global_free_page'
      | include/drm/ttm/ttm_memory.h:156: error: previous declaration of 'ttm_mem_global_free_page' was here
      Signed-off-by: NMartin Michlmayr <tbm@cyrius.com>
      Cc: stable@kernel.org
      Acked-by: NThomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c3a73ba1
    • K
      drm: Add compatibility #ifdefs for *BSD · 1a95916f
      Kristian Høgsberg 提交于
      This let's use use the linux drm headers as the canonical source for
      libdrm on all platforms.
      Signed-off-by: NKristian Høgsberg <krh@bitplanet.net>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      1a95916f