1. 31 3月, 2010 2 次提交
  2. 15 3月, 2010 1 次提交
  3. 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
  4. 18 2月, 2010 3 次提交
    • J
      drm/radeon/kms: simplify memory controller setup V2 · d594e46a
      Jerome Glisse 提交于
      Get rid of _location and use _start/_end also simplify the
      computation of vram_start|end & gtt_start|end. For R1XX-R2XX
      we place VRAM at the same address of PCI aperture, those GPU
      shouldn't have much memory and seems to behave better when
      setup that way. For R3XX and newer we place VRAM at 0. For
      R6XX-R7XX AGP we place VRAM before or after AGP aperture this
      might limit to limit the VRAM size but it's very unlikely.
      For IGP we don't change the VRAM placement.
      
      Tested on (compiz,quake3,suspend/resume):
      PCI/PCIE:RV280,R420,RV515,RV570,RV610,RV710
      AGP:RV100,RV280,R420,RV350,RV620(RPB*),RV730
      IGP:RS480(RPB*),RS690,RS780(RPB*),RS880
      
      RPB: resume previously broken
      
      V2 correct commit message to reflect more accurately the bug
      and move VRAM placement to 0 for most of the GPU to avoid
      limiting VRAM.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      d594e46a
    • P
      drm/radeon: Add asic hook for dma copy to r200 cards. · 44ca7478
      Pauli Nieminen 提交于
      r200 cards have dma engine which can be used to tranfer data
      between vram and system memory.
      
      r300 dma engine registers match r200 dma engine. Enabling
      dma copy for r200 is simple as hooking r200 asic to already
      existing function r300_copy_dma.
      
      Rename r300_dma_copy to r200_dma_copyto reflect that supports
      starts from r200 cards.
      
      v2: Created a new asic object for r200 cards.
      Signed-off-by: NPauli Nieminen <suokkos@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      44ca7478
    • P
      drm/radeon/kms: Create asic structure for r300 pcie cards. · d80eeb0f
      Pauli Nieminen 提交于
      Setting global asic structure to point to different function
      would cause problem in system where is multiple r300 cards
      with different bus type.
      
      r300_asic_pcie is just copy from r300_asic with gart tlb
      functions replaced with pcie versions.
      Signed-off-by: NPauli Nieminen <suokkos@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      d80eeb0f
  5. 11 2月, 2010 1 次提交
  6. 09 2月, 2010 4 次提交
  7. 14 1月, 2010 1 次提交
  8. 07 1月, 2010 1 次提交
  9. 23 12月, 2009 3 次提交
  10. 10 12月, 2009 2 次提交
  11. 08 12月, 2009 2 次提交
  12. 02 12月, 2009 4 次提交
  13. 24 11月, 2009 1 次提交
    • D
      drm/radeon/kms: resume AGP by calling init. · 0ebf1717
      Dave Airlie 提交于
      AGP resume was broken since we moved to the new init path,
      because we never re-enabled AGP on these systems at resume time.
      
      This patch just calls the AGP resume call which just does the reinit
      at resume time like the old path did.
      
      Since AGP is pretty much gpu independant I did it outside
      the gpu specific code.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      0ebf1717
  14. 28 10月, 2009 2 次提交
  15. 08 10月, 2009 2 次提交
  16. 02 10月, 2009 1 次提交
  17. 26 9月, 2009 1 次提交
  18. 21 9月, 2009 1 次提交
    • D
      drm/vgaarb: add VGA arbitration support to the drm and kms. · 28d52043
      Dave Airlie 提交于
      VGA arb requires DRM support for non-kms drivers, to turn on/off
      irqs when disabling the mem/io regions.
      
      VGA arb requires KMS support for GPUs where we can turn off VGA
      decoding. Currently we know how to do this for intel and radeon
      kms drivers, which allows them to be removed from the arbiter.
      
      This patch comes from Fedora rawhide kernel.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      28d52043
  19. 18 9月, 2009 2 次提交
  20. 16 9月, 2009 2 次提交
  21. 15 9月, 2009 1 次提交
    • J
      drm/radeon/kms: clear confusion in GART init/deinit path · 4aac0473
      Jerome Glisse 提交于
      GART static one time initialization was mixed up with GART
      enabling/disabling which could happen several time for instance
      during suspend/resume cycles. This patch splits all GART
      handling into 4 differents function. gart_init is for one
      time initialization, gart_deinit is called upon module unload
      to free resources allocated by gart_init, gart_enable enable
      the GART and is intented to be call after first initialization
      and at each resume cycle or reset cycle. Finaly gart_disable
      stop the GART and is intended to be call at suspend time or
      when unloading the module.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      4aac0473
  22. 14 9月, 2009 2 次提交