1. 01 3月, 2010 1 次提交
    • D
      vga_switcheroo: initial implementation (v15) · 6a9ee8af
      Dave Airlie 提交于
      Many new laptops now come with 2 gpus, one to be used for low power
      modes and one for gaming/on-ac applications. These GPUs are typically
      wired to the laptop panel and VGA ports via a multiplexer unit which
      is controlled via ACPI methods.
      
      4 combinations of systems typically exist - with 2 ACPI methods.
      Intel/ATI - Lenovo W500/T500 - use ATPX ACPI method
      ATI/ATI - some ASUS - use ATPX ACPI Method
      Intel/Nvidia - - use _DSM ACPI method
      Nvidia/Nvidia -  - use _DSM ACPI method.
      
      TODO:
      This patch adds support for the ATPX method and initial bits
      for the _DSM methods that need to written by someone with
      access to the hardware.
      Add a proper non-debugfs interface - need to get some proper
      testing first.
      
      v2: add power up/down support for both devices
      on W500 puts i915/radeon into D3 and cuts power to radeon.
      
      v3: redo probing methods, no DMI list, drm devices call to
      register with switcheroo, it tries to find an ATPX method on
      any device and once there is two devices + ATPX it inits the
      switcher.
      
      v4: ATPX msg handling using buffers - should work on more machines
      
      v5: rearchitect after more mjg59 discussion - move ATPX handling to
          radeon driver.
      
      v6: add file headers + initial nouveau bits (to be filled out).
      
      v7: merge delayed switcher code.
      
      v8: avoid suspend/resume of gpu that is off
      
      v9: rearchitect - mjg59 is always right. - move all ATPX code to
      radeon, should allow simpler DSM also proper ATRM handling
      
      v10: add ATRM support for radeon BIOS, add mutex to lock vgasr_priv
      
      v11: fix bug in resuming Intel for 2nd time.
      
      v12: start fixing up nvidia code blindly.
      
      v13: blindly guess at finishing nvidia code
      
      v14: remove radeon audio hacks - fix up intel resume more like upstream
      
      v15: clean up printks + remove unnecessary igd/dis pointers
      
      mount debugfs
      
      /sys/kernel/debug/vgaswitcheroo/switch - should exist if ATPX detected
       + 2 cards.
      
      DIS - immediate change to discrete
      IGD - immediate change to IGD
      DDIS - delayed change to discrete
      DIGD - delayed change to IGD
      ON - turn on not in use
      OFF - turn off not in use
      
      Tested on W500 (Intel/ATI) and T500 (Intel/ATI)
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      6a9ee8af
  2. 25 2月, 2010 1 次提交
  3. 09 2月, 2010 1 次提交
  4. 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
  5. 16 12月, 2009 1 次提交
  6. 11 12月, 2009 1 次提交
  7. 10 12月, 2009 1 次提交
  8. 25 9月, 2009 1 次提交
  9. 15 9月, 2009 1 次提交
  10. 08 9月, 2009 2 次提交
  11. 04 8月, 2009 1 次提交
  12. 29 7月, 2009 1 次提交
  13. 24 6月, 2009 1 次提交
  14. 19 6月, 2009 1 次提交
  15. 17 6月, 2009 1 次提交
  16. 15 6月, 2009 1 次提交
    • J
      drm/radeon: introduce kernel modesetting for radeon hardware · 771fe6b9
      Jerome Glisse 提交于
      Add kernel modesetting support to radeon driver, use the ttm memory
      manager to manage memory and DRM/GEM to provide userspace API.
      In order to avoid backward compatibility issue and to allow clean
      design and code the radeon kernel modesetting use different code path
      than old radeon/drm driver.
      
      When kernel modesetting is enabled the IOCTL of radeon/drm
      driver are considered as invalid and an error message is printed
      in the log and they return failure.
      
      KMS enabled userspace will use new API to talk with the radeon/drm
      driver. The new API provide functions to create/destroy/share/mmap
      buffer object which are then managed by the kernel memory manager
      (here TTM). In order to submit command to the GPU the userspace
      provide a buffer holding the command stream, along this buffer
      userspace have to provide a list of buffer object used by the
      command stream. The kernel radeon driver will then place buffer
      in GPU accessible memory and will update command stream to reflect
      the position of the different buffers.
      
      The kernel will also perform security check on command stream
      provided by the user, we want to catch and forbid any illegal use
      of the GPU such as DMA into random system memory or into memory
      not owned by the process supplying the command stream. This part
      of the code is still incomplete and this why we propose that patch
      as a staging driver addition, future security might forbid current
      experimental userspace to run.
      
      This code support the following hardware : R1XX,R2XX,R3XX,R4XX,R5XX
      (radeon up to X1950). Works is underway to provide support for R6XX,
      R7XX and newer hardware (radeon from HD2XXX to HD4XXX).
      
      Authors:
          Jerome Glisse <jglisse@redhat.com>
          Dave Airlie <airlied@redhat.com>
          Alex Deucher <alexdeucher@gmail.com>
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      Signed-off-by: NAlex Deucher <alexdeucher@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      771fe6b9
  17. 13 3月, 2009 3 次提交
  18. 29 12月, 2008 1 次提交
  19. 18 10月, 2008 1 次提交
  20. 02 8月, 2008 1 次提交
  21. 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
  22. 07 5月, 2008 1 次提交
  23. 26 4月, 2008 1 次提交
    • J
      drm/vbl rework: rework how the drm deals with vblank. · ac741ab7
      Jesse Barnes 提交于
      Other Authors: Michel Dänzer <michel@tungstengraphics.com>
      mga: Ian Romanick <idr@us.ibm.com>
      via: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
      
      This re-works the DRM internals to provide a better interface for drivers
      to expose vblank on multiple crtcs.
      
      It also includes work done by Michel on making i915 triple buffering and pageflipping work properly.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      ac741ab7
  24. 11 7月, 2007 1 次提交
  25. 22 9月, 2006 1 次提交
  26. 01 7月, 2006 1 次提交
  27. 11 11月, 2005 1 次提交
  28. 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
  29. 30 9月, 2005 2 次提交
  30. 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
  31. 10 7月, 2005 1 次提交
    • D
      drm: cleanup buffer/map code · 836cf046
      Dave Airlie 提交于
      This is a patch from DRM CVS that cleans up some code that was in CVS
      that I never moved to the kernel, this patch produces the result of the
      cleanups and puts it into the kernel drm.
      
      From: Eric Anholt <anholt@freebsd.org>, Jon Smirl, Dave Airlie
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      836cf046
  32. 23 6月, 2005 1 次提交
    • D
      drm: 32/64-bit DRM ioctl compatibility patch · 9a186645
      Dave Airlie 提交于
      The patch is against a 2.6.11 kernel tree.  I am running this with a
      32-bit X server (compiled up from X.org CVS as of a couple of weeks
      ago) and 32-bit DRI libraries and clients.  All the userland stuff is
      identical to what I am using under a 32-bit kernel on my G4 powerbook
      (which is a 32-bit machine of course).  I haven't tried compiling up a
      64-bit X server or clients yet.
      
      In the compatibility routines I have assumed that the kernel can
      safely access user addresses after set_fs(KERNEL_DS).  That is, where
      an ioctl argument structure contains pointers to other structures, and
      those other structures are already compatible between the 32-bit and
      64-bit ABIs (i.e. they only contain things like chars, shorts or
      ints), I just check the address with access_ok() and then pass it
      through to the 64-bit ioctl code.  I believe this approach may not
      work on sparc64, but it does work on ppc64 and x86_64 at least.
      
      One tricky area which may need to be revisited is the question of how
      to handle the handles which we pass back to userspace to identify
      mappings.  These handles are generated in the ADDMAP ioctl and then
      passed in as the offset value to mmap.  However, offset values for
      mmap seem to be generated in other ways as well, particularly for AGP
      mappings.
      
      The approach I have ended up with is to generate a fake 32-bit handle
      only for _DRM_SHM mappings.  The handles for other mappings (AGP, REG,
      FB) are physical addresses which are already limited to 32 bits, and
      generating fake handles for them created all sorts of problems in the
      mmap/nopage code.
      
      This patch has been updated to use the new compatibility ioctls.
      
      From: Paul Mackerras <paulus@samba.org>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      9a186645
  33. 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