diff options
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_cs.c | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_object.c | 9 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_vm.c | 8 |
4 files changed, 15 insertions, 14 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index b99c7ca67440..3c543eff793b 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
| @@ -997,8 +997,8 @@ struct radeon_cs_reloc { | |||
| 997 | struct radeon_bo *robj; | 997 | struct radeon_bo *robj; |
| 998 | struct ttm_validate_buffer tv; | 998 | struct ttm_validate_buffer tv; |
| 999 | uint64_t gpu_offset; | 999 | uint64_t gpu_offset; |
| 1000 | unsigned domain; | 1000 | unsigned prefered_domains; |
| 1001 | unsigned alt_domain; | 1001 | unsigned allowed_domains; |
| 1002 | uint32_t tiling_flags; | 1002 | uint32_t tiling_flags; |
| 1003 | uint32_t handle; | 1003 | uint32_t handle; |
| 1004 | }; | 1004 | }; |
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c index 41ecf8a60611..71a143461478 100644 --- a/drivers/gpu/drm/radeon/radeon_cs.c +++ b/drivers/gpu/drm/radeon/radeon_cs.c | |||
| @@ -140,10 +140,10 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p) | |||
| 140 | if (p->ring == R600_RING_TYPE_UVD_INDEX && | 140 | if (p->ring == R600_RING_TYPE_UVD_INDEX && |
| 141 | (i == 0 || drm_pci_device_is_agp(p->rdev->ddev))) { | 141 | (i == 0 || drm_pci_device_is_agp(p->rdev->ddev))) { |
| 142 | /* TODO: is this still needed for NI+ ? */ | 142 | /* TODO: is this still needed for NI+ ? */ |
| 143 | p->relocs[i].domain = | 143 | p->relocs[i].prefered_domains = |
| 144 | RADEON_GEM_DOMAIN_VRAM; | 144 | RADEON_GEM_DOMAIN_VRAM; |
| 145 | 145 | ||
| 146 | p->relocs[i].alt_domain = | 146 | p->relocs[i].allowed_domains = |
| 147 | RADEON_GEM_DOMAIN_VRAM; | 147 | RADEON_GEM_DOMAIN_VRAM; |
| 148 | 148 | ||
| 149 | /* prioritize this over any other relocation */ | 149 | /* prioritize this over any other relocation */ |
| @@ -158,10 +158,10 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p) | |||
| 158 | return -EINVAL; | 158 | return -EINVAL; |
| 159 | } | 159 | } |
| 160 | 160 | ||
| 161 | p->relocs[i].domain = domain; | 161 | p->relocs[i].prefered_domains = domain; |
| 162 | if (domain == RADEON_GEM_DOMAIN_VRAM) | 162 | if (domain == RADEON_GEM_DOMAIN_VRAM) |
| 163 | domain |= RADEON_GEM_DOMAIN_GTT; | 163 | domain |= RADEON_GEM_DOMAIN_GTT; |
| 164 | p->relocs[i].alt_domain = domain; | 164 | p->relocs[i].allowed_domains = domain; |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | p->relocs[i].tv.bo = &p->relocs[i].robj->tbo; | 167 | p->relocs[i].tv.bo = &p->relocs[i].robj->tbo; |
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index 2918087e572f..6c717b257d6d 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c | |||
| @@ -446,7 +446,7 @@ int radeon_bo_list_validate(struct radeon_device *rdev, | |||
| 446 | list_for_each_entry(lobj, head, tv.head) { | 446 | list_for_each_entry(lobj, head, tv.head) { |
| 447 | bo = lobj->robj; | 447 | bo = lobj->robj; |
| 448 | if (!bo->pin_count) { | 448 | if (!bo->pin_count) { |
| 449 | u32 domain = lobj->domain; | 449 | u32 domain = lobj->prefered_domains; |
| 450 | u32 current_domain = | 450 | u32 current_domain = |
| 451 | radeon_mem_type_to_domain(bo->tbo.mem.mem_type); | 451 | radeon_mem_type_to_domain(bo->tbo.mem.mem_type); |
| 452 | 452 | ||
| @@ -458,7 +458,7 @@ int radeon_bo_list_validate(struct radeon_device *rdev, | |||
| 458 | * into account. We don't want to disallow buffer moves | 458 | * into account. We don't want to disallow buffer moves |
| 459 | * completely. | 459 | * completely. |
| 460 | */ | 460 | */ |
| 461 | if ((lobj->alt_domain & current_domain) != 0 && | 461 | if ((lobj->allowed_domains & current_domain) != 0 && |
| 462 | (domain & current_domain) == 0 && /* will be moved */ | 462 | (domain & current_domain) == 0 && /* will be moved */ |
| 463 | bytes_moved > bytes_moved_threshold) { | 463 | bytes_moved > bytes_moved_threshold) { |
| 464 | /* don't move it */ | 464 | /* don't move it */ |
| @@ -476,8 +476,9 @@ int radeon_bo_list_validate(struct radeon_device *rdev, | |||
| 476 | initial_bytes_moved; | 476 | initial_bytes_moved; |
| 477 | 477 | ||
| 478 | if (unlikely(r)) { | 478 | if (unlikely(r)) { |
| 479 | if (r != -ERESTARTSYS && domain != lobj->alt_domain) { | 479 | if (r != -ERESTARTSYS && |
| 480 | domain = lobj->alt_domain; | 480 | domain != lobj->allowed_domains) { |
| 481 | domain = lobj->allowed_domains; | ||
| 481 | goto retry; | 482 | goto retry; |
| 482 | } | 483 | } |
| 483 | ttm_eu_backoff_reservation(ticket, head); | 484 | ttm_eu_backoff_reservation(ticket, head); |
diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c index a72e9c81805d..d3c9161aab8c 100644 --- a/drivers/gpu/drm/radeon/radeon_vm.c +++ b/drivers/gpu/drm/radeon/radeon_vm.c | |||
| @@ -140,8 +140,8 @@ struct radeon_cs_reloc *radeon_vm_get_bos(struct radeon_device *rdev, | |||
| 140 | /* add the vm page table to the list */ | 140 | /* add the vm page table to the list */ |
| 141 | list[0].gobj = NULL; | 141 | list[0].gobj = NULL; |
| 142 | list[0].robj = vm->page_directory; | 142 | list[0].robj = vm->page_directory; |
| 143 | list[0].domain = RADEON_GEM_DOMAIN_VRAM; | 143 | list[0].prefered_domains = RADEON_GEM_DOMAIN_VRAM; |
| 144 | list[0].alt_domain = RADEON_GEM_DOMAIN_VRAM; | 144 | list[0].allowed_domains = RADEON_GEM_DOMAIN_VRAM; |
| 145 | list[0].tv.bo = &vm->page_directory->tbo; | 145 | list[0].tv.bo = &vm->page_directory->tbo; |
| 146 | list[0].tiling_flags = 0; | 146 | list[0].tiling_flags = 0; |
| 147 | list[0].handle = 0; | 147 | list[0].handle = 0; |
| @@ -153,8 +153,8 @@ struct radeon_cs_reloc *radeon_vm_get_bos(struct radeon_device *rdev, | |||
| 153 | 153 | ||
| 154 | list[idx].gobj = NULL; | 154 | list[idx].gobj = NULL; |
| 155 | list[idx].robj = vm->page_tables[i].bo; | 155 | list[idx].robj = vm->page_tables[i].bo; |
| 156 | list[idx].domain = RADEON_GEM_DOMAIN_VRAM; | 156 | list[idx].prefered_domains = RADEON_GEM_DOMAIN_VRAM; |
| 157 | list[idx].alt_domain = RADEON_GEM_DOMAIN_VRAM; | 157 | list[idx].allowed_domains = RADEON_GEM_DOMAIN_VRAM; |
| 158 | list[idx].tv.bo = &list[idx].robj->tbo; | 158 | list[idx].tv.bo = &list[idx].robj->tbo; |
| 159 | list[idx].tiling_flags = 0; | 159 | list[idx].tiling_flags = 0; |
| 160 | list[idx].handle = 0; | 160 | list[idx].handle = 0; |
