OSDN Git Service

drm/amdgpu: Merge get_reserved_allocation to get_vbios_allocations.
authorYongqiang Sun <yongqiang.sun@amd.com>
Mon, 14 Mar 2022 18:17:08 +0000 (14:17 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Mar 2022 19:01:12 +0000 (15:01 -0400)
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.

Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c

index 58fd272..a25ae3b 100644 (file)
@@ -623,6 +623,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
         * of the driver writes to first 8M of VRAM on S3 resume,
@@ -636,6 +643,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;
@@ -756,25 +769,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;
index 93505bb..032b031 100644 (file)
@@ -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);
index f60b7bd..3c1d440 100644 (file)
@@ -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);