Am 15.03.22 um 15:11 schrieb Yongqiang Sun:
Some ASICs need reserved memory for firmware or other components,
which is not allowed to be used by driver.
amdgpu_gmc_get_reserved_allocation is to handle additional areas.
To avoid any missing calling,
merged amdgpu_gmc_get_reserved_allocation to
amdgpu_gmc_get_vbios_allocations.

Signed-off-by: Yongqiang Sun <yongqiang....@amd.com>
Change-Id: I142127513047a3e81573eb983c510d763b548a24

Acked-by: Christian König <christian.koe...@amd.com>

---
  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 32 ++++++++++---------------
  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h |  1 -
  drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c  |  1 -
  3 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
index 7c2a9555b7cc..f18d050a14cf 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
@@ -626,6 +626,13 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device 
*adev)
  {
        unsigned size;
+ /*
+        * Some ASICs need to reserve a region of video memory to avoid access
+        * from driver
+        */
+       adev->mman.stolen_reserved_offset = 0;
+       adev->mman.stolen_reserved_size = 0;
+
        /*
         * TODO:
         * Currently there is a bug where some memory client outside
@@ -640,6 +647,12 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device 
*adev)
        case CHIP_RENOIR:
                adev->mman.keep_stolen_vga_memory = true;
                break;
+       case CHIP_YELLOW_CARP:
+               if (amdgpu_discovery == 0) {
+                       adev->mman.stolen_reserved_offset = 0x1ffb0000;
+                       adev->mman.stolen_reserved_size = 64 * PAGE_SIZE;
+               }
+               break;
        default:
                adev->mman.keep_stolen_vga_memory = false;
                break;
@@ -760,25 +773,6 @@ uint64_t amdgpu_gmc_vram_cpu_pa(struct amdgpu_device 
*adev, struct amdgpu_bo *bo
        return amdgpu_bo_gpu_offset(bo) - adev->gmc.vram_start + 
adev->gmc.aper_base;
  }
-void amdgpu_gmc_get_reserved_allocation(struct amdgpu_device *adev)
-{
-       /* Some ASICs need to reserve a region of video memory to avoid access
-        * from driver */
-       adev->mman.stolen_reserved_offset = 0;
-       adev->mman.stolen_reserved_size = 0;
-
-       switch (adev->asic_type) {
-       case CHIP_YELLOW_CARP:
-               if (amdgpu_discovery == 0) {
-                       adev->mman.stolen_reserved_offset = 0x1ffb0000;
-                       adev->mman.stolen_reserved_size = 64 * PAGE_SIZE;
-               }
-               break;
-       default:
-               break;
-       }
-}
-
  int amdgpu_gmc_vram_checking(struct amdgpu_device *adev)
  {
        struct amdgpu_bo *vram_bo = NULL;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
index 93505bb0a36c..032b0313f277 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
@@ -331,7 +331,6 @@ amdgpu_gmc_set_vm_fault_masks(struct amdgpu_device *adev, 
int hub_type,
                              bool enable);
void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev);
-void amdgpu_gmc_get_reserved_allocation(struct amdgpu_device *adev);
void amdgpu_gmc_init_pdb0(struct amdgpu_device *adev);
  uint64_t amdgpu_gmc_vram_mc2pa(struct amdgpu_device *adev, uint64_t mc_addr);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c 
b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
index f60b7bd4dbf5..3c1d440824a7 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
@@ -948,7 +948,6 @@ static int gmc_v10_0_sw_init(void *handle)
                return r;
amdgpu_gmc_get_vbios_allocations(adev);
-       amdgpu_gmc_get_reserved_allocation(adev);
/* Memory manager */
        r = amdgpu_bo_init(adev);

Reply via email to