summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r600_cs.c
diff options
context:
space:
mode:
authorDmitry Cherkasov <dcherkassov@gmail.com>2012-09-17 19:36:19 +0200
committerAlex Deucher <alexander.deucher@amd.com>2012-09-27 10:22:44 -0400
commitfa87e62d357ccf73831cd52ed316593d0968020d (patch)
treec80c7a2c1bae57ce3da99683681eae1509b4b46c /drivers/gpu/drm/radeon/r600_cs.c
parentdce34bfd633d23ebddb196af8a4fa1c93c90ed07 (diff)
downloadlinux-stable-fa87e62d357ccf73831cd52ed316593d0968020d.tar.gz
linux-stable-fa87e62d357ccf73831cd52ed316593d0968020d.tar.bz2
linux-stable-fa87e62d357ccf73831cd52ed316593d0968020d.zip
drm/radeon: add 2-level VM pagetables support v9
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: Dmitry Cherkasov <Dmitrii.Cherkasov@amd.com> Signed-off-by: Christian König <deathsimple@vodafone.de> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/r600_cs.c')
0 files changed, 0 insertions, 0 deletions