summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2020-07-29 12:53:56 -0400
committerAlex Deucher <alexander.deucher@amd.com>2020-08-04 17:29:29 -0400
commitcacbbe7c00655985aec37e5e4d02c66d7a1732c9 (patch)
treef5ef4a96459d95faf74e63fc47936f0f2b69a380
parent7438ae6e522f1c4df5f067fd82aaa4e82917b7a8 (diff)
drm/amdgpu: move stolen memory from gmc to mman
It's more related to memory management than memory controller. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c12
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h5
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c20
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h6
4 files changed, 22 insertions, 21 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
index 0bd7b3797534..213ef090bb0e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
@@ -449,10 +449,10 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
case CHIP_VEGA10:
case CHIP_RAVEN:
case CHIP_RENOIR:
- adev->gmc.keep_stolen_vga_memory = true;
+ adev->mman.keep_stolen_vga_memory = true;
break;
default:
- adev->gmc.keep_stolen_vga_memory = false;
+ adev->mman.keep_stolen_vga_memory = false;
break;
}
@@ -466,10 +466,10 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
size = 0;
if (size > AMDGPU_VBIOS_VGA_ALLOCATION) {
- adev->gmc.stolen_vga_size = AMDGPU_VBIOS_VGA_ALLOCATION;
- adev->gmc.stolen_extended_size = size - adev->gmc.stolen_vga_size;
+ adev->mman.stolen_vga_size = AMDGPU_VBIOS_VGA_ALLOCATION;
+ adev->mman.stolen_extended_size = size - adev->mman.stolen_vga_size;
} else {
- adev->gmc.stolen_vga_size = size;
- adev->gmc.stolen_extended_size = 0;
+ adev->mman.stolen_vga_size = size;
+ adev->mman.stolen_extended_size = 0;
}
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
index c2a85d0b1546..d61bbde4c7d2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
@@ -215,11 +215,6 @@ struct amdgpu_gmc {
uint8_t vram_vendor;
uint32_t srbm_soft_reset;
bool prt_warning;
- uint64_t stolen_vga_size;
- struct amdgpu_bo *stolen_vga_memory;
- uint64_t stolen_extended_size;
- struct amdgpu_bo *stolen_extended_memory;
- bool keep_stolen_vga_memory;
uint32_t sdpif_register;
/* apertures */
u64 shared_aperture_start;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 3df9d5a53741..cc1a5b2876b6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1978,16 +1978,16 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
* This is used for VGA emulation and pre-OS scanout buffers to
* avoid display artifacts while transitioning between pre-OS
* and driver. */
- r = amdgpu_bo_create_kernel_at(adev, 0, adev->gmc.stolen_vga_size,
+ r = amdgpu_bo_create_kernel_at(adev, 0, adev->mman.stolen_vga_size,
AMDGPU_GEM_DOMAIN_VRAM,
- &adev->gmc.stolen_vga_memory,
+ &adev->mman.stolen_vga_memory,
NULL);
if (r)
return r;
- r = amdgpu_bo_create_kernel_at(adev, adev->gmc.stolen_vga_size,
- adev->gmc.stolen_extended_size,
+ r = amdgpu_bo_create_kernel_at(adev, adev->mman.stolen_vga_size,
+ adev->mman.stolen_extended_size,
AMDGPU_GEM_DOMAIN_VRAM,
- &adev->gmc.stolen_extended_memory,
+ &adev->mman.stolen_extended_memory,
NULL);
if (r)
return r;
@@ -2048,9 +2048,9 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
void amdgpu_ttm_late_init(struct amdgpu_device *adev)
{
/* return the VGA stolen memory (if any) back to VRAM */
- if (!adev->gmc.keep_stolen_vga_memory)
- amdgpu_bo_free_kernel(&adev->gmc.stolen_vga_memory, NULL, NULL);
- amdgpu_bo_free_kernel(&adev->gmc.stolen_extended_memory, NULL, NULL);
+ if (!adev->mman.keep_stolen_vga_memory)
+ amdgpu_bo_free_kernel(&adev->mman.stolen_vga_memory, NULL, NULL);
+ amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, NULL, NULL);
}
/**
@@ -2063,8 +2063,8 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
amdgpu_ttm_training_reserve_vram_fini(adev);
/* return the stolen vga memory back to VRAM */
- if (adev->gmc.keep_stolen_vga_memory)
- amdgpu_bo_free_kernel(&adev->gmc.stolen_vga_memory, NULL, NULL);
+ if (adev->mman.keep_stolen_vga_memory)
+ amdgpu_bo_free_kernel(&adev->mman.stolen_vga_memory, NULL, NULL);
/* return the IP Discovery TMR memory back to VRAM */
amdgpu_bo_free_kernel(&adev->discovery_memory, NULL, NULL);
amdgpu_ttm_fw_reserve_vram_fini(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
index 17c8d0d7bcc3..98af87f38f3e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
@@ -59,6 +59,12 @@ struct amdgpu_mman {
struct mutex gtt_window_lock;
/* Scheduler entity for buffer moves */
struct drm_sched_entity entity;
+
+ uint64_t stolen_vga_size;
+ struct amdgpu_bo *stolen_vga_memory;
+ uint64_t stolen_extended_size;
+ struct amdgpu_bo *stolen_extended_memory;
+ bool keep_stolen_vga_memory;
};
struct amdgpu_copy_mem {