1. 01 2月, 2013 3 次提交
  2. 15 1月, 2013 1 次提交
  3. 04 1月, 2013 3 次提交
  4. 13 12月, 2012 1 次提交
  5. 11 12月, 2012 2 次提交
  6. 08 12月, 2012 1 次提交
  7. 19 11月, 2012 1 次提交
  8. 08 11月, 2012 1 次提交
  9. 23 10月, 2012 2 次提交
  10. 16 10月, 2012 1 次提交
  11. 03 10月, 2012 4 次提交
  12. 27 9月, 2012 1 次提交
    • D
      drm/radeon: add 2-level VM pagetables support v9 · fa87e62d
      Dmitry Cherkasov 提交于
      PDE/PTE update code uses CP ring for memory writes.
      All page table entries are preallocated for now in alloc_pt().
      
      It is made as whole because it's hard to divide it to several patches
      that compile and doesn't break anything being applied separately.
      
      Tested on cayman card.
      
      v2: rebased on top of "refactor set_page chipset interface v3",
          code cleanups
      
      v3: switched offsets calc macros to inline funcs where possible,
          remove pd_addr from radeon_vm, switched RADEON_BLOCK_SIZE define,
          to 9 (and PTE_COUNT to 1 << BLOCK_SIZE)
      
      v4 (ck): move "incr" documentation to previous patch, cleanup and
               document RADEON_VM_* constants, change commit message to
               our usual format, simplify patch allot by removing
               everything current not necessary, disable SI workaround.
      
      v5: (agd5f): Fix typo in tables_size calculation in
                   radeon_vm_alloc_pt().  Second line should have been
                   '+=' rather than '='.
      
      v6: fix npdes calculation. In scenario when pfns to be mapped overlap
      two PDE spans:
      
         +-----------+-------------+
         | PDE span  | PDE span    |
         +-----------+----+--------+
                |         |
                +---------+
                | pfns    |
                +---------+
      
      the following npdes calculation gives incorrect result:
      
      npdes = (nptes >> RADEON_VM_BLOCK_SIZE) + 1;
      
      For the case above picture it should give npdes = 2, but gives one.
      
      This patch corrects it by rounding last pfn up to 512 border,
      first - down to 512 border and then subtracting and dividing by 512.
      
      v7: Make npde calculation clearer, fix ndw calculation.
      
      v8: (agd5f): reserve enough for 2 full VM PTs, add some
                   additional comments.
      
      v9: fix typo in npde calculation
      Signed-off-by: NDmitry Cherkasov <Dmitrii.Cherkasov@amd.com>
      Signed-off-by: NChristian König <deathsimple@vodafone.de>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      fa87e62d
  13. 21 9月, 2012 6 次提交
  14. 13 8月, 2012 2 次提交
  15. 18 7月, 2012 2 次提交
  16. 17 7月, 2012 6 次提交
  17. 29 6月, 2012 1 次提交
    • A
      drm/radeon: fix VM page table setup on SI · c21b328e
      Alex Deucher 提交于
      Cayman and trinity allow for variable sized VM page
      tables, but SI requires that all page tables be the
      same size.  The current code assumes variablely sized
      VM page tables so SI may end up with part of each page
      table overlapping with other memory which could end
      up being interpreted by the VM hw as garbage.
      
      Change the code to better accomodate SI.  Allocate enough
      space for at least 2 full page tables and always set
      last_pfn to max_pfn on SI so each VM is backed by a full
      page table.  This limits us to only 2 VMs active at any
      given time on SI.  This will be rectified and the code can
      be reunified once we move to two level page tables.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: NJerome Glisse <jglisse@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c21b328e
  18. 21 6月, 2012 2 次提交