1. 18 5月, 2012 1 次提交
  2. 17 2月, 2012 1 次提交
    • D
      drm: add some caps for userspace to discover more info for dumb KMS driver (v2) · 019d96cb
      Dave Airlie 提交于
      For the simple KMS driver case we need some more info about what the preferred
      depth and if a shadow framebuffer is preferred.
      
      I've only added this for intel/radeon which support the dumb ioctls so far.
      
      If you need something really fancy you should be writing a real X.org driver.
      
      v2: drop cursor information, just return an error from the cursor ioctls
      and we can make userspace fallback to sw cursor in that case, cursor
      info was getting too messy, best to start smaller.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      019d96cb
  3. 18 1月, 2012 1 次提交
  4. 05 1月, 2012 1 次提交
    • I
      drm: make DRM_UNLOCKED ioctls with their own mutex · 09b4ea47
      Ilija Hadzic 提交于
      drm_getclient, drm_getstats and drm_getmap (with a few minor
      adjustments) do not need global mutex, so fix that and
      make the said ioctls DRM_UNLOCKED. Details:
      
        drm_getclient: the only thing that should be protected here
        is dev->filelist and that is already protected everywhere with
        dev->struct_mutex.
      
        drm_getstats: there is no need for any mutex here because the
        loop runs through quasi-static (set at load time only)
        data, and the actual count access is done with atomic_read()
      
        drm_getmap already uses dev->struct_mutex to protect
        dev->maplist, which also used to protect the same structure
        everywhere else except at three places:
        * drm_getsarea, which doesn't grab *any* mutex before
          touching dev->maplist (so no drm_global_mutex doesn't help
          here either; different issue for a different patch).
          However, drivers seem to call it only at
          initialization time so it probably doesn't matter
        * drm_master_destroy, which is called from drm_master_put,
          which in turn is protected with dev->struct_mutex
          everywhere else in drm module, so we are good here too.
        * drm_getsareactx, which releases the dev->struct_mutex
          too early, but this patch includes the fix for that.
      
      v2: * incorporate comments received from Daniel Vetter
          * include the (long) explanation above to make it clear what
            we are doing (and why), also at Daniel Vetter's request
          * tighten up mutex grab/release locations to only
            encompass real critical sections, rather than some
            random code around them
      Signed-off-by: NIlija Hadzic <ihadzic@research.bell-labs.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      09b4ea47
  5. 24 3月, 2011 1 次提交
  6. 21 3月, 2011 1 次提交
  7. 04 3月, 2011 2 次提交
  8. 07 2月, 2011 1 次提交
  9. 10 8月, 2010 1 次提交
    • B
      drm: Fix support for PCI domains · c17c2f89
      Benjamin Herrenschmidt 提交于
      (For some reason I thought that went in ages ago ...)
      
      This fixes support for PCI domains in what should hopefully be a backward
      compatible way along with a change to libdrm.
      
      When the interface version is set to 1.4, we assume userspace understands
      domains and the world is at peace. We thus pass proper domain numbers
      instead of 0 to userspace.
      
      The newer libdrm will then try 1.4 first, and fallback to 1.1, along with
      ignoring domains in the later case (well, except on alpha of course)
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c17c2f89
  10. 05 8月, 2010 1 次提交
  11. 01 6月, 2010 1 次提交
  12. 19 6月, 2009 1 次提交
  13. 29 12月, 2008 2 次提交
    • V
      drm: fix leak of uninitialized data to userspace · 1147c9cd
      Vegard Nossum 提交于
      ...so drm_getunique() is trying to copy some uninitialized data to
      userspace. The ECX register contains the number of words that are
      left to copy -- so there are 5 * 4 = 20 bytes left. The offset of the
      first uninitialized byte (counting from the start of the string) is
      also 20 (i.e. 0xf65d2294&((1 << 5)-1) == 20). So somebody tried to
      copy 40 bytes when the string was only 19 long.
      
      In drm_set_busid() we have this code:
      
              dev->unique_len = 40;
              dev->unique = drm_alloc(dev->unique_len + 1, DRM_MEM_DRIVER);
            ...
              len = snprintf(dev->unique, dev->unique_len, pci:%04x:%02x:%02x.%d",
      
      ...so it seems that dev->unique is never updated to reflect the
      actual length of the string. The remaining bytes (20 in this case)
      are random uninitialized bytes that are copied into userspace.
      
      This patch fixes the problem by setting dev->unique_len after the
      snprintf().
      
      airlied- I've had to fix this up to store the alloced size so
      we have it for drm_free later.
      Reported-by: NSitsofe Wheeler <sitsofe@yahoo.com>
      Signed-off-by: NVegard Nossum <vegardno@thuin.ifi.uio.no>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      1147c9cd
    • D
      drm: move to kref per-master structures. · 7c1c2871
      Dave Airlie 提交于
      This is step one towards having multiple masters sharing a drm
      device in order to get fast-user-switching to work.
      
      It splits out the information associated with the drm master
      into a separate kref counted structure, and allocates this when
      a master opens the device node. It also allows the current master
      to abdicate (say while VT switched), and a new master to take over
      the hardware.
      
      It moves the Intel and radeon drivers to using the sarea from
      within the new master structures.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      7c1c2871
  14. 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
  15. 07 2月, 2008 2 次提交
  16. 06 11月, 2007 1 次提交
  17. 15 10月, 2007 3 次提交
  18. 11 7月, 2007 4 次提交
  19. 22 9月, 2006 4 次提交
  20. 02 2月, 2006 1 次提交
  21. 02 1月, 2006 1 次提交
  22. 10 11月, 2005 1 次提交
    • D
      drm: rename driver hooks more understandably · 22eae947
      Dave Airlie 提交于
      Rename the driver hooks in the DRM to something a little more understandable:
      preinit         ->      load
      postinit        ->      (removed)
      presetup        ->      firstopen
      postsetup       ->      (removed)
      open_helper     ->      open
      prerelease      ->      preclose
      free_filp_priv  ->      postclose
      pretakedown     ->      lastclose
      postcleanup     ->      unload
      release         ->      reclaim_buffers_locked
      version         ->      (removed)
      
      postinit and version were replaced with generic code in the Linux DRM (drivers
      now set their version numbers and description in the driver structure, like on
      BSD).  postsetup wasn't used at all.  Fixes the savage hooks for
      initializing and tearing down mappings at the right times.  Testing involved at
      least starting X, running glxgears, killing glxgears, exiting X, and repeating.
      
      Tested on:      FreeBSD (g200, g400, r200, r128)
                      Linux (r200, savage4)
      
      From: Eric Anholt <anholt@freebsd.org>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      22eae947
  23. 25 9月, 2005 1 次提交
    • D
      drm: lindent the drm directory. · b5e89ed5
      Dave Airlie 提交于
      I've been threatening this for a while, so no point hanging around.
      This lindents the DRM code which was always really bad in tabbing department.
      I've also fixed some misnamed files in comments and removed some trailing
      whitespace.
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      b5e89ed5
  24. 05 8月, 2005 1 次提交
    • D
      drm: updated DRM map patch for 32/64 bit systems · d1f2b55a
      Dave Airlie 提交于
      I basically combined Paul's patches with additions that I had made
      for PCI scatter gather.
      I also tried more carefully to avoid problems with the same token
      assigned multiple times while trying to use the base address in the
      token if possible to gain as much backward compatibility as possible
      for broken DRI clients.
      
      From: Paul Mackerras <paulus@samba.org> and Egbert Eich <eich@suse.de>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      d1f2b55a
  25. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4