diff options
author | Christian König <christian.koenig@amd.com> | 2017-11-04 11:51:44 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-12-06 12:47:21 -0500 |
commit | fdd5faaa08f891153ac4fd8cedace6d95bed0968 (patch) | |
tree | b342a5442fab53bd1b44366d070932fca7e13f1d | |
parent | c47b41a79ab5e8faec9aea6c4a06c4d1e4d1132f (diff) |
drm/amdgpu: cleanup vm_size handling
It's pointless to have the same value twice, just always use max_pfn.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 18 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 13 |
6 files changed, 17 insertions, 24 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index 1e727da2bb64..122379dfc7d8 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |||
@@ -2576,27 +2576,27 @@ void amdgpu_vm_set_fragment_size(struct amdgpu_device *adev, | |||
2576 | * @adev: amdgpu_device pointer | 2576 | * @adev: amdgpu_device pointer |
2577 | * @vm_size: the default vm size if it's set auto | 2577 | * @vm_size: the default vm size if it's set auto |
2578 | */ | 2578 | */ |
2579 | void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint64_t vm_size, | 2579 | void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint32_t vm_size, |
2580 | uint32_t fragment_size_default) | 2580 | uint32_t fragment_size_default) |
2581 | { | 2581 | { |
2582 | /* adjust vm size firstly */ | 2582 | /* adjust vm size firstly */ |
2583 | if (amdgpu_vm_size == -1) | 2583 | if (amdgpu_vm_size != -1) |
2584 | adev->vm_manager.vm_size = vm_size; | 2584 | vm_size = amdgpu_vm_size; |
2585 | else | 2585 | |
2586 | adev->vm_manager.vm_size = amdgpu_vm_size; | 2586 | adev->vm_manager.max_pfn = (uint64_t)vm_size << 18; |
2587 | 2587 | ||
2588 | /* block size depends on vm size */ | 2588 | /* block size depends on vm size */ |
2589 | if (amdgpu_vm_block_size == -1) | 2589 | if (amdgpu_vm_block_size == -1) |
2590 | adev->vm_manager.block_size = | 2590 | adev->vm_manager.block_size = |
2591 | amdgpu_vm_get_block_size(adev->vm_manager.vm_size); | 2591 | amdgpu_vm_get_block_size(vm_size); |
2592 | else | 2592 | else |
2593 | adev->vm_manager.block_size = amdgpu_vm_block_size; | 2593 | adev->vm_manager.block_size = amdgpu_vm_block_size; |
2594 | 2594 | ||
2595 | amdgpu_vm_set_fragment_size(adev, fragment_size_default); | 2595 | amdgpu_vm_set_fragment_size(adev, fragment_size_default); |
2596 | 2596 | ||
2597 | DRM_INFO("vm size is %llu GB, block size is %u-bit, fragment size is %u-bit\n", | 2597 | DRM_INFO("vm size is %u GB, block size is %u-bit, fragment size is %u-bit\n", |
2598 | adev->vm_manager.vm_size, adev->vm_manager.block_size, | 2598 | vm_size, adev->vm_manager.block_size, |
2599 | adev->vm_manager.fragment_size); | 2599 | adev->vm_manager.fragment_size); |
2600 | } | 2600 | } |
2601 | 2601 | ||
2602 | /** | 2602 | /** |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h index bae77353447b..e8f8896d18db 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | |||
@@ -221,7 +221,6 @@ struct amdgpu_vm_manager { | |||
221 | 221 | ||
222 | uint64_t max_pfn; | 222 | uint64_t max_pfn; |
223 | uint32_t num_level; | 223 | uint32_t num_level; |
224 | uint64_t vm_size; | ||
225 | uint32_t block_size; | 224 | uint32_t block_size; |
226 | uint32_t fragment_size; | 225 | uint32_t fragment_size; |
227 | /* vram base address for page table entry */ | 226 | /* vram base address for page table entry */ |
@@ -313,9 +312,9 @@ struct amdgpu_bo_va_mapping *amdgpu_vm_bo_lookup_mapping(struct amdgpu_vm *vm, | |||
313 | void amdgpu_vm_bo_rmv(struct amdgpu_device *adev, | 312 | void amdgpu_vm_bo_rmv(struct amdgpu_device *adev, |
314 | struct amdgpu_bo_va *bo_va); | 313 | struct amdgpu_bo_va *bo_va); |
315 | void amdgpu_vm_set_fragment_size(struct amdgpu_device *adev, | 314 | void amdgpu_vm_set_fragment_size(struct amdgpu_device *adev, |
316 | uint32_t fragment_size_default); | 315 | uint32_t fragment_size_default); |
317 | void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint64_t vm_size, | 316 | void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint32_t vm_size, |
318 | uint32_t fragment_size_default); | 317 | uint32_t fragment_size_default); |
319 | int amdgpu_vm_ioctl(struct drm_device *dev, void *data, struct drm_file *filp); | 318 | int amdgpu_vm_ioctl(struct drm_device *dev, void *data, struct drm_file *filp); |
320 | bool amdgpu_vm_need_pipeline_sync(struct amdgpu_ring *ring, | 319 | bool amdgpu_vm_need_pipeline_sync(struct amdgpu_ring *ring, |
321 | struct amdgpu_job *job); | 320 | struct amdgpu_job *job); |
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c index d2a43db22cff..c8e47c36608e 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | |||
@@ -838,7 +838,6 @@ static int gmc_v6_0_sw_init(void *handle) | |||
838 | return r; | 838 | return r; |
839 | 839 | ||
840 | amdgpu_vm_adjust_size(adev, 64, 9); | 840 | amdgpu_vm_adjust_size(adev, 64, 9); |
841 | adev->vm_manager.max_pfn = adev->vm_manager.vm_size << 18; | ||
842 | 841 | ||
843 | adev->mc.mc_mask = 0xffffffffffULL; | 842 | adev->mc.mc_mask = 0xffffffffffULL; |
844 | 843 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c index 6c6a7e14359c..2b7338e22409 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | |||
@@ -978,7 +978,6 @@ static int gmc_v7_0_sw_init(void *handle) | |||
978 | * Max GPUVM size for cayman and SI is 40 bits. | 978 | * Max GPUVM size for cayman and SI is 40 bits. |
979 | */ | 979 | */ |
980 | amdgpu_vm_adjust_size(adev, 64, 9); | 980 | amdgpu_vm_adjust_size(adev, 64, 9); |
981 | adev->vm_manager.max_pfn = adev->vm_manager.vm_size << 18; | ||
982 | 981 | ||
983 | /* Set the internal MC address mask | 982 | /* Set the internal MC address mask |
984 | * This is the max address of the GPU's | 983 | * This is the max address of the GPU's |
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c index edbe0df24d90..e30a96a8f49b 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | |||
@@ -1075,7 +1075,6 @@ static int gmc_v8_0_sw_init(void *handle) | |||
1075 | * Max GPUVM size for cayman and SI is 40 bits. | 1075 | * Max GPUVM size for cayman and SI is 40 bits. |
1076 | */ | 1076 | */ |
1077 | amdgpu_vm_adjust_size(adev, 64, 9); | 1077 | amdgpu_vm_adjust_size(adev, 64, 9); |
1078 | adev->vm_manager.max_pfn = adev->vm_manager.vm_size << 18; | ||
1079 | 1078 | ||
1080 | /* Set the internal MC address mask | 1079 | /* Set the internal MC address mask |
1081 | * This is the max address of the GPU's | 1080 | * This is the max address of the GPU's |
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c index 69c9af7af6f4..b067b46a418f 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | |||
@@ -564,7 +564,7 @@ static int gmc_v9_0_sw_init(void *handle) | |||
564 | case CHIP_RAVEN: | 564 | case CHIP_RAVEN: |
565 | adev->mc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN; | 565 | adev->mc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN; |
566 | if (adev->rev_id == 0x0 || adev->rev_id == 0x1) { | 566 | if (adev->rev_id == 0x0 || adev->rev_id == 0x1) { |
567 | adev->vm_manager.vm_size = 1U << 18; | 567 | adev->vm_manager.max_pfn = 1ULL << 36; |
568 | adev->vm_manager.block_size = 9; | 568 | adev->vm_manager.block_size = 9; |
569 | adev->vm_manager.num_level = 3; | 569 | adev->vm_manager.num_level = 3; |
570 | amdgpu_vm_set_fragment_size(adev, 9); | 570 | amdgpu_vm_set_fragment_size(adev, 9); |
@@ -582,7 +582,7 @@ static int gmc_v9_0_sw_init(void *handle) | |||
582 | * vm size is 256TB (48bit), maximum size of Vega10, | 582 | * vm size is 256TB (48bit), maximum size of Vega10, |
583 | * block size 512 (9bit) | 583 | * block size 512 (9bit) |
584 | */ | 584 | */ |
585 | adev->vm_manager.vm_size = 1U << 18; | 585 | adev->vm_manager.max_pfn = 1ULL << 36; |
586 | adev->vm_manager.block_size = 9; | 586 | adev->vm_manager.block_size = 9; |
587 | adev->vm_manager.num_level = 3; | 587 | adev->vm_manager.num_level = 3; |
588 | amdgpu_vm_set_fragment_size(adev, 9); | 588 | amdgpu_vm_set_fragment_size(adev, 9); |
@@ -591,10 +591,9 @@ static int gmc_v9_0_sw_init(void *handle) | |||
591 | break; | 591 | break; |
592 | } | 592 | } |
593 | 593 | ||
594 | DRM_INFO("vm size is %llu GB, block size is %u-bit,fragment size is %u-bit\n", | 594 | DRM_INFO("vm size is %llu GB, block size is %u-bit, fragment size is %u-bit\n", |
595 | adev->vm_manager.vm_size, | 595 | adev->vm_manager.max_pfn >> 18, adev->vm_manager.block_size, |
596 | adev->vm_manager.block_size, | 596 | adev->vm_manager.fragment_size); |
597 | adev->vm_manager.fragment_size); | ||
598 | 597 | ||
599 | /* This interrupt is VMC page fault.*/ | 598 | /* This interrupt is VMC page fault.*/ |
600 | r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_VMC, 0, | 599 | r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_VMC, 0, |
@@ -605,8 +604,6 @@ static int gmc_v9_0_sw_init(void *handle) | |||
605 | if (r) | 604 | if (r) |
606 | return r; | 605 | return r; |
607 | 606 | ||
608 | adev->vm_manager.max_pfn = adev->vm_manager.vm_size << 18; | ||
609 | |||
610 | /* Set the internal MC address mask | 607 | /* Set the internal MC address mask |
611 | * This is the max address of the GPU's | 608 | * This is the max address of the GPU's |
612 | * internal address space. | 609 | * internal address space. |