1. 18 2月, 2010 2 次提交
    • 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
  2. 11 2月, 2010 1 次提交
  3. 09 2月, 2010 2 次提交
  4. 05 2月, 2010 2 次提交
  5. 08 1月, 2010 2 次提交
  6. 23 12月, 2009 2 次提交
  7. 16 12月, 2009 3 次提交
  8. 10 12月, 2009 1 次提交
  9. 08 12月, 2009 1 次提交
  10. 02 12月, 2009 4 次提交
  11. 16 10月, 2009 1 次提交
  12. 02 10月, 2009 3 次提交
  13. 25 9月, 2009 1 次提交
    • D
      drm/radeon/kms: don't require up to 64k allocations. (v2) · 513bcb46
      Dave Airlie 提交于
      This avoids needing to do a kmalloc > PAGE_SIZE for the main
      indirect buffer chunk, it adds an accessor for all reads from
      the chunk and caches a single page at a time for subsequent
      reads.
      
      changes since v1:
      Use a two page pool which should be the most common case
      a single packet spanning > PAGE_SIZE will be hit, but I'm
      having trouble seeing anywhere we currently generate anything like that.
      hopefully proper short page copying at end
      added parser_error flag to set deep errors instead of having to test
      every ib value fetch.
      fixed bug in patch that went to list.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      513bcb46
  14. 21 9月, 2009 1 次提交
  15. 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
  16. 14 9月, 2009 2 次提交
  17. 11 9月, 2009 1 次提交
  18. 08 9月, 2009 2 次提交
    • J
      drm/radeon/kms: add r600 KMS support · 3ce0a23d
      Jerome Glisse 提交于
      This adds the r600 KMS + CS support to the Linux kernel.
      
      The r600 TTM support is quite basic and still needs more
      work esp around using interrupts, but the polled fencing
      should work okay for now.
      
      Also currently TTM is using memcpy to do VRAM moves,
      the code is here to use a 3D blit to do this, but
      isn't fully debugged yet.
      
      Authors:
      Alex Deucher <alexdeucher@gmail.com>
      Dave Airlie <airlied@redhat.com>
      Jerome Glisse <jglisse@redhat.com>
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      3ce0a23d
    • D
      drm/radeon/kms: add rn50/r100/r200 CS tracker. · 551ebd83
      Dave Airlie 提交于
      This adds the command stream checker for the RN50, R100 and R200 cards.
      
      It stops any access to 3D registers on RN50, and does checks
      on buffer sizes on the r100/r200 cards. It also fixes some texture
      sizing checks on r300.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      551ebd83
  19. 07 9月, 2009 1 次提交
  20. 21 8月, 2009 2 次提交
  21. 16 8月, 2009 2 次提交
  22. 29 7月, 2009 2 次提交
    • J
      drm/radeon/kms: fix bandwidth computation on avivo hardware · c93bb85b
      Jerome Glisse 提交于
      Fix bandwidth computation and crtc priority in memory controller
      so that crtc memory request are fullfill in time to avoid display
      artifact.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c93bb85b
    • D
      drm/radeon/kms: add initial colortiling support. · e024e110
      Dave Airlie 提交于
      This adds new set/get tiling interfaces where the pitch
      and macro/micro tiling enables can be set. Along with
      a flag to decide if this object should have a surface when mapped.
      
      The only thing we need to allocate with a mapped surface should be
      the frontbuffer. Note rotate scanout shouldn't require one, and
      back/depth shouldn't either, though mesa needs some fixes.
      
      It fixes the TTM interfaces along Thomas's suggestions, and I've tested
      the surface stealing code with two X servers and not seen any lockdep issues.
      
      I've stopped tiling the fbcon frontbuffer, as I don't see there being
      any advantage other than testing, I've left the testing commands in there,
      just flip the fb_tiled to true in radeon_fb.c
      
      Open: Can we integrate endian swapping in with this?
      
      Future features:
      texture tiling - need to relocate texture registers TXOFFSET* with tiling info.
      
      This also merges Michel's cleanup surfaces regs at init time patch
      even though it makes sense on its own, this patch really relies on it.
      
      Some PowerMac firmwares set up a tiling surface at the beginning of VRAM
      which messes us up otherwise.
      that patch is:
      Signed-off-by: NMichel Dänzer <daenzer@vmware.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      e024e110
  23. 15 7月, 2009 1 次提交