aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2017-08-30 09:38:45 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-08-31 13:45:47 -0400
commit570144c6522f5f332635d20dfa278cfcc764229c (patch)
tree93f3194f3134ee6721a7b2159c072f4ad6bab765 /drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
parentea09729c930223edf492d0ca647c27e7eb0ccb12 (diff)
drm/amdgpu: cleanup the VM code a bit more
The src isn't used any more after GART hack removal. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Chunming Zhou <david1.zhou@amd.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index faa08d5728da..1582feba9289 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1476,7 +1476,6 @@ static int amdgpu_vm_frag_ptes(struct amdgpu_pte_update_params *params,
1476 * 1476 *
1477 * @adev: amdgpu_device pointer 1477 * @adev: amdgpu_device pointer
1478 * @exclusive: fence we need to sync to 1478 * @exclusive: fence we need to sync to
1479 * @src: address where to copy page table entries from
1480 * @pages_addr: DMA addresses to use for mapping 1479 * @pages_addr: DMA addresses to use for mapping
1481 * @vm: requested vm 1480 * @vm: requested vm
1482 * @start: start of mapped range 1481 * @start: start of mapped range
@@ -1490,7 +1489,6 @@ static int amdgpu_vm_frag_ptes(struct amdgpu_pte_update_params *params,
1490 */ 1489 */
1491static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev, 1490static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
1492 struct dma_fence *exclusive, 1491 struct dma_fence *exclusive,
1493 uint64_t src,
1494 dma_addr_t *pages_addr, 1492 dma_addr_t *pages_addr,
1495 struct amdgpu_vm *vm, 1493 struct amdgpu_vm *vm,
1496 uint64_t start, uint64_t last, 1494 uint64_t start, uint64_t last,
@@ -1508,7 +1506,6 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
1508 memset(&params, 0, sizeof(params)); 1506 memset(&params, 0, sizeof(params));
1509 params.adev = adev; 1507 params.adev = adev;
1510 params.vm = vm; 1508 params.vm = vm;
1511 params.src = src;
1512 1509
1513 /* sync to everything on unmapping */ 1510 /* sync to everything on unmapping */
1514 if (!(flags & AMDGPU_PTE_VALID)) 1511 if (!(flags & AMDGPU_PTE_VALID))
@@ -1548,13 +1545,7 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
1548 /* one PDE write for each huge page */ 1545 /* one PDE write for each huge page */
1549 ndw += ((nptes >> adev->vm_manager.block_size) + 1) * 6; 1546 ndw += ((nptes >> adev->vm_manager.block_size) + 1) * 6;
1550 1547
1551 if (src) { 1548 if (pages_addr) {
1552 /* only copy commands needed */
1553 ndw += ncmds * 7;
1554
1555 params.func = amdgpu_vm_do_copy_ptes;
1556
1557 } else if (pages_addr) {
1558 /* copy commands needed */ 1549 /* copy commands needed */
1559 ndw += ncmds * 7; 1550 ndw += ncmds * 7;
1560 1551
@@ -1579,7 +1570,7 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
1579 1570
1580 params.ib = &job->ibs[0]; 1571 params.ib = &job->ibs[0];
1581 1572
1582 if (!src && pages_addr) { 1573 if (pages_addr) {
1583 uint64_t *pte; 1574 uint64_t *pte;
1584 unsigned i; 1575 unsigned i;
1585 1576
@@ -1656,7 +1647,7 @@ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev,
1656 struct drm_mm_node *nodes, 1647 struct drm_mm_node *nodes,
1657 struct dma_fence **fence) 1648 struct dma_fence **fence)
1658{ 1649{
1659 uint64_t pfn, src = 0, start = mapping->start; 1650 uint64_t pfn, start = mapping->start;
1660 int r; 1651 int r;
1661 1652
1662 /* normally,bo_va->flags only contians READABLE and WIRTEABLE bit go here 1653 /* normally,bo_va->flags only contians READABLE and WIRTEABLE bit go here
@@ -1711,8 +1702,7 @@ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev,
1711 addr += pfn << PAGE_SHIFT; 1702 addr += pfn << PAGE_SHIFT;
1712 1703
1713 last = min((uint64_t)mapping->last, start + max_entries - 1); 1704 last = min((uint64_t)mapping->last, start + max_entries - 1);
1714 r = amdgpu_vm_bo_update_mapping(adev, exclusive, 1705 r = amdgpu_vm_bo_update_mapping(adev, exclusive, pages_addr, vm,
1715 src, pages_addr, vm,
1716 start, last, flags, addr, 1706 start, last, flags, addr,
1717 fence); 1707 fence);
1718 if (r) 1708 if (r)
@@ -1973,7 +1963,7 @@ int amdgpu_vm_clear_freed(struct amdgpu_device *adev,
1973 if (vm->pte_support_ats) 1963 if (vm->pte_support_ats)
1974 init_pte_value = AMDGPU_PTE_SYSTEM; 1964 init_pte_value = AMDGPU_PTE_SYSTEM;
1975 1965
1976 r = amdgpu_vm_bo_update_mapping(adev, NULL, 0, NULL, vm, 1966 r = amdgpu_vm_bo_update_mapping(adev, NULL, NULL, vm,
1977 mapping->start, mapping->last, 1967 mapping->start, mapping->last,
1978 init_pte_value, 0, &f); 1968 init_pte_value, 0, &f);
1979 amdgpu_vm_free_mapping(adev, vm, mapping, f); 1969 amdgpu_vm_free_mapping(adev, vm, mapping, f);