diff options
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index bc4b22c6fc08..06f24322e7c3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |||
| @@ -878,13 +878,13 @@ static void amdgpu_vm_frag_ptes(struct amdgpu_pte_update_params *params, | |||
| 878 | * allocation size to the fragment size. | 878 | * allocation size to the fragment size. |
| 879 | */ | 879 | */ |
| 880 | 880 | ||
| 881 | const uint64_t frag_align = 1 << AMDGPU_LOG2_PAGES_PER_FRAG; | 881 | /* SI and newer are optimized for 64KB */ |
| 882 | uint64_t frag_flags = AMDGPU_PTE_FRAG(AMDGPU_LOG2_PAGES_PER_FRAG); | ||
| 883 | uint64_t frag_align = 1 << AMDGPU_LOG2_PAGES_PER_FRAG; | ||
| 882 | 884 | ||
| 883 | uint64_t frag_start = ALIGN(start, frag_align); | 885 | uint64_t frag_start = ALIGN(start, frag_align); |
| 884 | uint64_t frag_end = end & ~(frag_align - 1); | 886 | uint64_t frag_end = end & ~(frag_align - 1); |
| 885 | 887 | ||
| 886 | uint32_t frag; | ||
| 887 | |||
| 888 | /* system pages are non continuously */ | 888 | /* system pages are non continuously */ |
| 889 | if (params->src || !(flags & AMDGPU_PTE_VALID) || | 889 | if (params->src || !(flags & AMDGPU_PTE_VALID) || |
| 890 | (frag_start >= frag_end)) { | 890 | (frag_start >= frag_end)) { |
| @@ -893,10 +893,6 @@ static void amdgpu_vm_frag_ptes(struct amdgpu_pte_update_params *params, | |||
| 893 | return; | 893 | return; |
| 894 | } | 894 | } |
| 895 | 895 | ||
| 896 | /* use more than 64KB fragment size if possible */ | ||
| 897 | frag = lower_32_bits(frag_start | frag_end); | ||
| 898 | frag = likely(frag) ? __ffs(frag) : 31; | ||
| 899 | |||
| 900 | /* handle the 4K area at the beginning */ | 896 | /* handle the 4K area at the beginning */ |
| 901 | if (start != frag_start) { | 897 | if (start != frag_start) { |
| 902 | amdgpu_vm_update_ptes(params, vm, start, frag_start, | 898 | amdgpu_vm_update_ptes(params, vm, start, frag_start, |
| @@ -906,7 +902,7 @@ static void amdgpu_vm_frag_ptes(struct amdgpu_pte_update_params *params, | |||
| 906 | 902 | ||
| 907 | /* handle the area in the middle */ | 903 | /* handle the area in the middle */ |
| 908 | amdgpu_vm_update_ptes(params, vm, frag_start, frag_end, dst, | 904 | amdgpu_vm_update_ptes(params, vm, frag_start, frag_end, dst, |
| 909 | flags | AMDGPU_PTE_FRAG(frag)); | 905 | flags | frag_flags); |
| 910 | 906 | ||
| 911 | /* handle the 4K area at the end */ | 907 | /* handle the 4K area at the end */ |
| 912 | if (frag_end != end) { | 908 | if (frag_end != end) { |
