aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3151-drm-amdgpu-move-struct-amdgpu_mc-into-amdgpu_gmc.h.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3151-drm-amdgpu-move-struct-amdgpu_mc-into-amdgpu_gmc.h.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3151-drm-amdgpu-move-struct-amdgpu_mc-into-amdgpu_gmc.h.patch3153
1 files changed, 3153 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3151-drm-amdgpu-move-struct-amdgpu_mc-into-amdgpu_gmc.h.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3151-drm-amdgpu-move-struct-amdgpu_mc-into-amdgpu_gmc.h.patch
new file mode 100644
index 00000000..0b41dca1
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3151-drm-amdgpu-move-struct-amdgpu_mc-into-amdgpu_gmc.h.patch
@@ -0,0 +1,3153 @@
+From cd5b59da08276f2c68c1fedf09d24a67076f1cba Mon Sep 17 00:00:00 2001
+From: Christian Koenig <christian.koenig@amd.com>
+Date: Fri, 12 Jan 2018 14:52:22 +0100
+Subject: [PATCH 3151/4131] drm/amdgpu: move struct amdgpu_mc into amdgpu_gmc.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+And rename it to amdgpu_gmc as well.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Samuel Li <Samuel.Li@amd.com>
+
+Conflicts:
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+ drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+ drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
+ drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+ drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+ drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+
+Change-Id: I925adce2ead6cb35eb6128071213a82b66a329fc
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 89 +----------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 16 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 16 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 10 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 14 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h | 3 -
+ drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 4 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 110 ++++++++++++++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 18 +--
+ drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 30 ++--
+ drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 12 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 46 +++---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 19 ++-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 6 +-
+ drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 12 +-
+ drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 4 +-
+ drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 6 +-
+ drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c | 24 +--
+ drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 109 +++++++-------
+ drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 139 +++++++++---------
+ drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 170 +++++++++++-----------
+ drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 110 +++++++-------
+ drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 24 +--
+ drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 4 +-
+ drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 4 +-
+ drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 8 +-
+ drivers/gpu/drm/amd/amdgpu/si_dma.c | 4 +-
+ drivers/gpu/drm/amd/amdgpu/si_dpm.c | 18 +--
+ drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 8 +-
+ drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 4 +-
+ drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 8 +-
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 +-
+ 41 files changed, 552 insertions(+), 529 deletions(-)
+ create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index db8ed3e..a40653f 100755
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -68,6 +68,7 @@
+ #include "amdgpu_uvd.h"
+ #include "amdgpu_vce.h"
+ #include "amdgpu_vcn.h"
++#include "amdgpu_gmc.h"
+ #include "amdgpu_dm.h"
+ #include "amdgpu_mn.h"
+ #include "amdgpu_virt.h"
+@@ -335,28 +336,6 @@ struct amdgpu_vm_pte_funcs {
+ uint32_t incr, uint64_t flags);
+ };
+
+-/* provided by the gmc block */
+-struct amdgpu_gart_funcs {
+- /* flush the vm tlb via mmio */
+- void (*flush_gpu_tlb)(struct amdgpu_device *adev,
+- uint32_t vmid);
+- /* write pte/pde updates using the cpu */
+- int (*set_pte_pde)(struct amdgpu_device *adev,
+- void *cpu_pt_addr, /* cpu addr of page table */
+- uint32_t gpu_page_idx, /* pte/pde to update */
+- uint64_t addr, /* addr to write into pte/pde */
+- uint64_t flags); /* access flags */
+- /* enable/disable PRT support */
+- void (*set_prt)(struct amdgpu_device *adev, bool enable);
+- /* set pte flags based per asic */
+- uint64_t (*get_vm_pte_flags)(struct amdgpu_device *adev,
+- uint32_t flags);
+- /* get the pde for a given mc addr */
+- void (*get_vm_pde)(struct amdgpu_device *adev, int level,
+- u64 *dst, u64 *flags);
+- uint32_t (*get_invalidate_req)(unsigned int vmid);
+-};
+-
+ /* provided by the ih block */
+ struct amdgpu_ih_funcs {
+ /* ring read/write ptr handling, called from interrupt context */
+@@ -508,58 +487,6 @@ int amdgpu_fence_slab_init(void);
+ void amdgpu_fence_slab_fini(void);
+
+ /*
+- * VMHUB structures, functions & helpers
+- */
+-struct amdgpu_vmhub {
+- uint32_t ctx0_ptb_addr_lo32;
+- uint32_t ctx0_ptb_addr_hi32;
+- uint32_t vm_inv_eng0_req;
+- uint32_t vm_inv_eng0_ack;
+- uint32_t vm_context0_cntl;
+- uint32_t vm_l2_pro_fault_status;
+- uint32_t vm_l2_pro_fault_cntl;
+-};
+-
+-/*
+- * GPU MC structures, functions & helpers
+- */
+-struct amdgpu_mc {
+- resource_size_t aper_size;
+- resource_size_t aper_base;
+- /* for some chips with <= 32MB we need to lie
+- * about vram size near mc fb location */
+- u64 mc_vram_size;
+- u64 visible_vram_size;
+- u64 gart_size;
+- u64 gart_start;
+- u64 gart_end;
+- u64 vram_start;
+- u64 vram_end;
+- unsigned vram_width;
+- u64 real_vram_size;
+- int vram_mtrr;
+- u64 mc_mask;
+- const struct firmware *fw; /* MC firmware */
+- uint32_t fw_version;
+- struct amdgpu_irq_src vm_fault;
+- uint32_t vram_type;
+- uint32_t srbm_soft_reset;
+- bool prt_warning;
+- uint64_t stolen_size;
+- /* apertures */
+- u64 shared_aperture_start;
+- u64 shared_aperture_end;
+- u64 private_aperture_start;
+- u64 private_aperture_end;
+- /* protects concurrent invalidation */
+- spinlock_t invalidate_lock;
+- bool translate_further;
+-
+- struct kfd_vm_fault_info *vm_fault_info;
+- atomic_t vm_fault_info_updated;
+-};
+-
+-/*
+ * GPU doorbell structures, functions & helpers
+ */
+ typedef enum _AMDGPU_DOORBELL_ASSIGNMENT
+@@ -1640,7 +1567,7 @@ struct amdgpu_device {
+ struct amdgpu_clock clock;
+
+ /* MC */
+- struct amdgpu_mc mc;
++ struct amdgpu_gmc gmc;
+ struct amdgpu_gart gart;
+ struct amdgpu_dummy_page dummy_page;
+ struct amdgpu_vm_manager vm_manager;
+@@ -1909,13 +1836,13 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
+ #define amdgpu_asic_get_config_memsize(adev) (adev)->asic_funcs->get_config_memsize((adev))
+ #define amdgpu_asic_flush_hdp(adev) (adev)->asic_funcs->flush_hdp((adev))
+ #define amdgpu_asic_invalidate_hdp(adev) (adev)->asic_funcs->invalidate_hdp((adev))
+-#define amdgpu_gart_flush_gpu_tlb(adev, vmid) (adev)->gart.gart_funcs->flush_gpu_tlb((adev), (vmid))
+-#define amdgpu_gart_set_pte_pde(adev, pt, idx, addr, flags) (adev)->gart.gart_funcs->set_pte_pde((adev), (pt), (idx), (addr), (flags))
+-#define amdgpu_gart_get_vm_pde(adev, level, dst, flags) (adev)->gart.gart_funcs->get_vm_pde((adev), (level), (dst), (flags))
++#define amdgpu_gmc_flush_gpu_tlb(adev, vmid) (adev)->gmc.gmc_funcs->flush_gpu_tlb((adev), (vmid))
++#define amdgpu_gmc_set_pte_pde(adev, pt, idx, addr, flags) (adev)->gmc.gmc_funcs->set_pte_pde((adev), (pt), (idx), (addr), (flags))
++#define amdgpu_gmc_get_vm_pde(adev, level, dst, flags) (adev)->gmc.gmc_funcs->get_vm_pde((adev), (level), (dst), (flags))
++#define amdgpu_gmc_get_pte_flags(adev, flags) (adev)->gmc.gmc_funcs->get_vm_pte_flags((adev),(flags))
+ #define amdgpu_vm_copy_pte(adev, ib, pe, src, count) ((adev)->vm_manager.vm_pte_funcs->copy_pte((ib), (pe), (src), (count)))
+ #define amdgpu_vm_write_pte(adev, ib, pe, value, count, incr) ((adev)->vm_manager.vm_pte_funcs->write_pte((ib), (pe), (value), (count), (incr)))
+ #define amdgpu_vm_set_pte_pde(adev, ib, pe, addr, count, incr, flags) ((adev)->vm_manager.vm_pte_funcs->set_pte_pde((ib), (pe), (addr), (count), (incr), (flags)))
+-#define amdgpu_vm_get_pte_flags(adev, flags) (adev)->gart.gart_funcs->get_vm_pte_flags((adev),(flags))
+ #define amdgpu_ring_parse_cs(r, p, ib) ((r)->funcs->parse_cs((p), (ib)))
+ #define amdgpu_ring_test_ring(r) (r)->funcs->test_ring((r))
+ #define amdgpu_ring_test_ib(r, t) (r)->funcs->test_ib((r), (t))
+@@ -1972,9 +1899,9 @@ void amdgpu_cs_report_moved_bytes(struct amdgpu_device *adev, u64 num_bytes,
+ void amdgpu_ttm_placement_from_domain(struct amdgpu_bo *abo, u32 domain);
+ bool amdgpu_ttm_bo_is_amdgpu_bo(struct ttm_buffer_object *bo);
+ void amdgpu_device_vram_location(struct amdgpu_device *adev,
+- struct amdgpu_mc *mc, u64 base);
++ struct amdgpu_gmc *mc, u64 base);
+ void amdgpu_device_gart_location(struct amdgpu_device *adev,
+- struct amdgpu_mc *mc);
++ struct amdgpu_gmc *mc);
+ int amdgpu_device_resize_fb_bar(struct amdgpu_device *adev);
+ void amdgpu_ttm_set_active_vram_size(struct amdgpu_device *adev, u64 size);
+ int amdgpu_ttm_init(struct amdgpu_device *adev);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+index 0725615..af33709 100755
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+@@ -388,22 +388,22 @@ void get_local_mem_info(struct kgd_dev *kgd,
+
+ address_mask = adev->dev->dma_mask ? ~*adev->dev->dma_mask :
+ ~((1ULL << 32) - 1);
+- aper_limit = adev->mc.aper_base + adev->mc.aper_size;
++ aper_limit = adev->gmc.aper_base + adev->gmc.aper_size;
+
+ memset(mem_info, 0, sizeof(*mem_info));
+- if (!(adev->mc.aper_base & address_mask ||
++ if (!(adev->gmc.aper_base & address_mask ||
+ aper_limit & address_mask)) {
+- mem_info->local_mem_size_public = adev->mc.visible_vram_size;
+- mem_info->local_mem_size_private = adev->mc.real_vram_size -
+- adev->mc.visible_vram_size;
++ mem_info->local_mem_size_public = adev->gmc.visible_vram_size;
++ mem_info->local_mem_size_private = adev->gmc.real_vram_size -
++ adev->gmc.visible_vram_size;
+ } else {
+ mem_info->local_mem_size_public = 0;
+- mem_info->local_mem_size_private = adev->mc.real_vram_size;
++ mem_info->local_mem_size_private = adev->gmc.real_vram_size;
+ }
+- mem_info->vram_width = adev->mc.vram_width;
++ mem_info->vram_width = adev->gmc.vram_width;
+
+ pr_debug("Address base: %pap limit %pap public 0x%llx private 0x%llx\n",
+- &adev->mc.aper_base, &aper_limit,
++ &adev->gmc.aper_base, &aper_limit,
+ mem_info->local_mem_size_public,
+ mem_info->local_mem_size_private);
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+index 9947e1a..58abb55 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+@@ -267,7 +267,7 @@ static void amdgpu_cs_get_threshold_for_moves(struct amdgpu_device *adev,
+ return;
+ }
+
+- total_vram = adev->mc.real_vram_size - adev->vram_pin_size;
++ total_vram = adev->gmc.real_vram_size - adev->vram_pin_size;
+ used_vram = amdgpu_vram_mgr_usage(&adev->mman.bdev.man[TTM_PL_VRAM]);
+ free_vram = used_vram >= total_vram ? 0 : total_vram - used_vram;
+
+@@ -312,8 +312,8 @@ static void amdgpu_cs_get_threshold_for_moves(struct amdgpu_device *adev,
+ *max_bytes = us_to_bytes(adev, adev->mm_stats.accum_us);
+
+ /* Do the same for visible VRAM if half of it is free */
+- if (adev->mc.visible_vram_size < adev->mc.real_vram_size) {
+- u64 total_vis_vram = adev->mc.visible_vram_size;
++ if (adev->gmc.visible_vram_size < adev->gmc.real_vram_size) {
++ u64 total_vis_vram = adev->gmc.visible_vram_size;
+ u64 used_vis_vram =
+ amdgpu_vram_mgr_vis_usage(&adev->mman.bdev.man[TTM_PL_VRAM]);
+
+@@ -364,7 +364,7 @@ static int amdgpu_cs_bo_validate(struct amdgpu_cs_parser *p,
+ * to move it. Don't move anything if the threshold is zero.
+ */
+ if (p->bytes_moved < p->bytes_moved_threshold) {
+- if (adev->mc.visible_vram_size < adev->mc.real_vram_size &&
++ if (adev->gmc.visible_vram_size < adev->gmc.real_vram_size &&
+ (bo->flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED)) {
+ /* And don't move a CPU_ACCESS_REQUIRED BO to limited
+ * visible VRAM if we've depleted our allowance to do
+@@ -389,9 +389,9 @@ static int amdgpu_cs_bo_validate(struct amdgpu_cs_parser *p,
+ initial_bytes_moved;
+ p->bytes_moved += bytes_moved;
+
+- if (adev->mc.visible_vram_size < adev->mc.real_vram_size &&
++ if (adev->gmc.visible_vram_size < adev->gmc.real_vram_size &&
+ bo->tbo.mem.mem_type == TTM_PL_VRAM &&
+- bo->tbo.mem.start < adev->mc.visible_vram_size >> PAGE_SHIFT)
++ bo->tbo.mem.start < adev->gmc.visible_vram_size >> PAGE_SHIFT)
+ p->bytes_moved_vis += bytes_moved;
+
+ if (unlikely(r == -ENOMEM) && domain != bo->allowed_domains) {
+@@ -444,9 +444,9 @@ static bool amdgpu_cs_try_evict(struct amdgpu_cs_parser *p,
+ /* Good we can try to move this BO somewhere else */
+ amdgpu_ttm_placement_from_domain(bo, other);
+ update_bytes_moved_vis =
+- adev->mc.visible_vram_size < adev->mc.real_vram_size &&
++ adev->gmc.visible_vram_size < adev->gmc.real_vram_size &&
+ bo->tbo.mem.mem_type == TTM_PL_VRAM &&
+- bo->tbo.mem.start < adev->mc.visible_vram_size >> PAGE_SHIFT;
++ bo->tbo.mem.start < adev->gmc.visible_vram_size >> PAGE_SHIFT;
+ initial_bytes_moved = atomic64_read(&adev->num_bytes_moved);
+ r = ttm_bo_validate(&bo->tbo, &bo->placement, true, false);
+ bytes_moved = atomic64_read(&adev->num_bytes_moved) -
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 26343af..c0a513a 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -543,7 +543,7 @@ void amdgpu_device_wb_free(struct amdgpu_device *adev, u32 wb)
+ * as parameter.
+ */
+ void amdgpu_device_vram_location(struct amdgpu_device *adev,
+- struct amdgpu_mc *mc, u64 base)
++ struct amdgpu_gmc *mc, u64 base)
+ {
+ uint64_t limit = (uint64_t)amdgpu_vram_limit << 20;
+
+@@ -569,11 +569,11 @@ void amdgpu_device_vram_location(struct amdgpu_device *adev,
+ * FIXME: when reducing GTT size align new size on power of 2.
+ */
+ void amdgpu_device_gart_location(struct amdgpu_device *adev,
+- struct amdgpu_mc *mc)
++ struct amdgpu_gmc *mc)
+ {
+ u64 size_af, size_bf;
+
+- size_af = adev->mc.mc_mask - mc->vram_end;
++ size_af = adev->gmc.mc_mask - mc->vram_end;
+ size_bf = mc->vram_start;
+ if (size_bf > size_af) {
+ if (mc->gart_size > size_bf) {
+@@ -608,7 +608,7 @@ void amdgpu_device_gart_location(struct amdgpu_device *adev,
+ */
+ int amdgpu_device_resize_fb_bar(struct amdgpu_device *adev)
+ {
+- u64 space_needed = roundup_pow_of_two(adev->mc.real_vram_size);
++ u64 space_needed = roundup_pow_of_two(adev->gmc.real_vram_size);
+ u32 rbar_size = order_base_2(((space_needed >> 20) | 1)) - 1;
+ struct pci_bus *root;
+ struct resource *res;
+@@ -1796,14 +1796,14 @@ int amdgpu_device_init(struct amdgpu_device *adev,
+ adev->flags = flags;
+ adev->asic_type = flags & AMD_ASIC_MASK;
+ adev->usec_timeout = AMDGPU_MAX_USEC_TIMEOUT;
+- adev->mc.gart_size = 512 * 1024 * 1024;
++ adev->gmc.gart_size = 512 * 1024 * 1024;
+ adev->accel_working = false;
+ adev->num_rings = 0;
+ adev->mman.buffer_funcs = NULL;
+ adev->mman.buffer_funcs_ring = NULL;
+ adev->vm_manager.vm_pte_funcs = NULL;
+ adev->vm_manager.vm_pte_num_rings = 0;
+- adev->gart.gart_funcs = NULL;
++ adev->gmc.gmc_funcs = NULL;
+ adev->fence_context = dma_fence_context_alloc(AMDGPU_MAX_RINGS);
+ bitmap_zero(adev->gfx.pipe_reserve_bitmap, AMDGPU_MAX_COMPUTE_QUEUES);
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+index 577645d..34cb5c1 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+@@ -245,8 +245,8 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
+ info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT;
+ info->fbops = &amdgpufb_ops;
+
+- tmp = amdgpu_bo_gpu_offset(abo) - adev->mc.vram_start;
+- info->fix.smem_start = adev->mc.aper_base + tmp;
++ tmp = amdgpu_bo_gpu_offset(abo) - adev->gmc.vram_start;
++ info->fix.smem_start = adev->gmc.aper_base + tmp;
+ info->fix.smem_len = amdgpu_bo_size(abo);
+ info->screen_base = amdgpu_bo_kptr(abo);
+ info->screen_size = amdgpu_bo_size(abo);
+@@ -255,7 +255,7 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
+
+ /* setup aperture base/size for vesafb takeover */
+ info->apertures->ranges[0].base = adev->ddev->mode_config.fb_base;
+- info->apertures->ranges[0].size = adev->mc.aper_size;
++ info->apertures->ranges[0].size = adev->gmc.aper_size;
+
+ /* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */
+
+@@ -265,7 +265,7 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
+ }
+
+ DRM_INFO("fb mappable at 0x%lX\n", info->fix.smem_start);
+- DRM_INFO("vram apper at 0x%lX\n", (unsigned long)adev->mc.aper_base);
++ DRM_INFO("vram apper at 0x%lX\n", (unsigned long)adev->gmc.aper_base);
+ DRM_INFO("size %lu\n", (unsigned long)amdgpu_bo_size(abo));
+ DRM_INFO("fb depth is %d\n", fb->format->depth);
+ DRM_INFO(" pitch is %d\n", fb->pitches[0]);
+@@ -352,7 +352,7 @@ int amdgpu_fbdev_init(struct amdgpu_device *adev)
+ return 0;
+
+ /* select 8 bpp console on low vram cards */
+- if (adev->mc.real_vram_size <= (32*1024*1024))
++ if (adev->gmc.real_vram_size <= (32*1024*1024))
+ bpp_sel = 8;
+
+ rfbdev = kzalloc(sizeof(struct amdgpu_fbdev), GFP_KERNEL);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
+index d0617f1..18d2387 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
+@@ -241,14 +241,14 @@ int amdgpu_gart_unbind(struct amdgpu_device *adev, uint64_t offset,
+ continue;
+
+ for (j = 0; j < (PAGE_SIZE / AMDGPU_GPU_PAGE_SIZE); j++, t++) {
+- amdgpu_gart_set_pte_pde(adev, adev->gart.ptr,
+- t, page_base, flags);
++ amdgpu_gmc_set_pte_pde(adev, adev->gart.ptr,
++ t, page_base, flags);
+ page_base += AMDGPU_GPU_PAGE_SIZE;
+ }
+ }
+ mb();
+ amdgpu_asic_flush_hdp(adev);
+- amdgpu_gart_flush_gpu_tlb(adev, 0);
++ amdgpu_gmc_flush_gpu_tlb(adev, 0);
+ return 0;
+ }
+
+@@ -280,7 +280,7 @@ int amdgpu_gart_map(struct amdgpu_device *adev, uint64_t offset,
+ for (i = 0; i < pages; i++) {
+ page_base = dma_addr[i];
+ for (j = 0; j < (PAGE_SIZE / AMDGPU_GPU_PAGE_SIZE); j++, t++) {
+- amdgpu_gart_set_pte_pde(adev, dst, t, page_base, flags);
++ amdgpu_gmc_set_pte_pde(adev, dst, t, page_base, flags);
+ page_base += AMDGPU_GPU_PAGE_SIZE;
+ }
+ }
+@@ -331,7 +331,7 @@ int amdgpu_gart_bind(struct amdgpu_device *adev, uint64_t offset,
+
+ mb();
+ amdgpu_asic_flush_hdp(adev);
+- amdgpu_gart_flush_gpu_tlb(adev, 0);
++ amdgpu_gmc_flush_gpu_tlb(adev, 0);
+ return 0;
+ }
+
+@@ -359,8 +359,8 @@ int amdgpu_gart_init(struct amdgpu_device *adev)
+ if (r)
+ return r;
+ /* Compute table size */
+- adev->gart.num_cpu_pages = adev->mc.gart_size / PAGE_SIZE;
+- adev->gart.num_gpu_pages = adev->mc.gart_size / AMDGPU_GPU_PAGE_SIZE;
++ adev->gart.num_cpu_pages = adev->gmc.gart_size / PAGE_SIZE;
++ adev->gart.num_gpu_pages = adev->gmc.gart_size / AMDGPU_GPU_PAGE_SIZE;
+ DRM_INFO("GART: num cpu pages %u, num gpu pages %u\n",
+ adev->gart.num_cpu_pages, adev->gart.num_gpu_pages);
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h
+index d4a4330..456295c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h
+@@ -31,7 +31,6 @@
+ */
+ struct amdgpu_device;
+ struct amdgpu_bo;
+-struct amdgpu_gart_funcs;
+
+ #define AMDGPU_GPU_PAGE_SIZE 4096
+ #define AMDGPU_GPU_PAGE_MASK (AMDGPU_GPU_PAGE_SIZE - 1)
+@@ -52,8 +51,6 @@ struct amdgpu_gart {
+
+ /* Asic default pte flags */
+ uint64_t gart_pte_flags;
+-
+- const struct amdgpu_gart_funcs *gart_funcs;
+ };
+
+ int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+index 11d1fb7..2378a2e 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+@@ -805,7 +805,7 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
+ if (r)
+ goto error_backoff;
+
+- va_flags = amdgpu_vm_get_pte_flags(adev, args->flags);
++ va_flags = amdgpu_gmc_get_pte_flags(adev, args->flags);
+ r = amdgpu_vm_bo_map(adev, bo_va, args->va_address,
+ args->offset_in_bo, args->map_size,
+ va_flags);
+@@ -825,7 +825,7 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
+ if (r)
+ goto error_backoff;
+
+- va_flags = amdgpu_vm_get_pte_flags(adev, args->flags);
++ va_flags = amdgpu_gmc_get_pte_flags(adev, args->flags);
+ r = amdgpu_vm_bo_replace_map(adev, bo_va, args->va_address,
+ args->offset_in_bo, args->map_size,
+ va_flags);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
+new file mode 100644
+index 0000000..2229a14
+--- /dev/null
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
+@@ -0,0 +1,110 @@
++/*
++ * Copyright 2018 Advanced Micro Devices, Inc.
++ * All Rights Reserved.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation the rights to use, copy, modify, merge, publish,
++ * distribute, sub license, and/or sell copies of the Software, and to
++ * permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
++ * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
++ * USE OR OTHER DEALINGS IN THE SOFTWARE.
++ *
++ * The above copyright notice and this permission notice (including the
++ * next paragraph) shall be included in all copies or substantial portions
++ * of the Software.
++ *
++ */
++#ifndef __AMDGPU_GMC_H__
++#define __AMDGPU_GMC_H__
++
++#include <linux/types.h>
++
++#include "amdgpu_irq.h"
++
++struct firmware;
++
++/*
++ * VMHUB structures, functions & helpers
++ */
++struct amdgpu_vmhub {
++ uint32_t ctx0_ptb_addr_lo32;
++ uint32_t ctx0_ptb_addr_hi32;
++ uint32_t vm_inv_eng0_req;
++ uint32_t vm_inv_eng0_ack;
++ uint32_t vm_context0_cntl;
++ uint32_t vm_l2_pro_fault_status;
++ uint32_t vm_l2_pro_fault_cntl;
++};
++
++/*
++ * GPU MC structures, functions & helpers
++ */
++struct amdgpu_gmc_funcs {
++ /* flush the vm tlb via mmio */
++ void (*flush_gpu_tlb)(struct amdgpu_device *adev,
++ uint32_t vmid);
++ /* write pte/pde updates using the cpu */
++ int (*set_pte_pde)(struct amdgpu_device *adev,
++ void *cpu_pt_addr, /* cpu addr of page table */
++ uint32_t gpu_page_idx, /* pte/pde to update */
++ uint64_t addr, /* addr to write into pte/pde */
++ uint64_t flags); /* access flags */
++ /* enable/disable PRT support */
++ void (*set_prt)(struct amdgpu_device *adev, bool enable);
++ /* set pte flags based per asic */
++ uint64_t (*get_vm_pte_flags)(struct amdgpu_device *adev,
++ uint32_t flags);
++ /* get the pde for a given mc addr */
++ void (*get_vm_pde)(struct amdgpu_device *adev, int level,
++ u64 *dst, u64 *flags);
++ uint32_t (*get_invalidate_req)(unsigned int vmid);
++};
++
++struct amdgpu_gmc {
++ resource_size_t aper_size;
++ resource_size_t aper_base;
++ /* for some chips with <= 32MB we need to lie
++ * about vram size near mc fb location */
++ u64 mc_vram_size;
++ u64 visible_vram_size;
++ u64 gart_size;
++ u64 gart_start;
++ u64 gart_end;
++ u64 vram_start;
++ u64 vram_end;
++ unsigned vram_width;
++ u64 real_vram_size;
++ int vram_mtrr;
++ u64 mc_mask;
++ const struct firmware *fw; /* MC firmware */
++ uint32_t fw_version;
++ struct amdgpu_irq_src vm_fault;
++ uint32_t vram_type;
++ uint32_t srbm_soft_reset;
++ bool prt_warning;
++ uint64_t stolen_size;
++ /* apertures */
++ u64 shared_aperture_start;
++ u64 shared_aperture_end;
++ u64 private_aperture_start;
++ u64 private_aperture_end;
++ /* protects concurrent invalidation */
++ spinlock_t invalidate_lock;
++ bool translate_further;
++
++ struct kfd_vm_fault_info *vm_fault_info;
++ atomic_t vm_fault_info_updated;
++
++ const struct amdgpu_gmc_funcs *gmc_funcs;
++};
++
++#endif
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
+index 73135b9..eeb9e77 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
+@@ -56,7 +56,7 @@ static int amdgpu_gtt_mgr_init(struct ttm_mem_type_manager *man,
+ return -ENOMEM;
+
+ start = AMDGPU_GTT_MAX_TRANSFER_SIZE * AMDGPU_GTT_NUM_TRANSFER_WINDOWS;
+- size = (adev->mc.gart_size >> PAGE_SHIFT) - start;
++ size = (adev->gmc.gart_size >> PAGE_SHIFT) - start;
+ drm_mm_init(&mgr->mm, start, size);
+ spin_lock_init(&mgr->lock);
+ atomic64_set(&mgr->available, p_size);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+index 1481a4a..99c9df2 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+@@ -214,7 +214,7 @@ static int amdgpu_firmware_info(struct drm_amdgpu_info_firmware *fw_info,
+ fw_info->feature = 0;
+ break;
+ case AMDGPU_INFO_FW_GMC:
+- fw_info->ver = adev->mc.fw_version;
++ fw_info->ver = adev->gmc.fw_version;
+ fw_info->feature = 0;
+ break;
+ case AMDGPU_INFO_FW_GFX_ME:
+@@ -510,9 +510,9 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
+ case AMDGPU_INFO_VRAM_GTT: {
+ struct drm_amdgpu_info_vram_gtt vram_gtt;
+
+- vram_gtt.vram_size = adev->mc.real_vram_size;
++ vram_gtt.vram_size = adev->gmc.real_vram_size;
+ vram_gtt.vram_size -= adev->vram_pin_size;
+- vram_gtt.vram_cpu_accessible_size = adev->mc.visible_vram_size;
++ vram_gtt.vram_cpu_accessible_size = adev->gmc.visible_vram_size;
+ vram_gtt.vram_cpu_accessible_size -= (adev->vram_pin_size - adev->invisible_pin_size);
+ vram_gtt.gtt_size = adev->mman.bdev.man[TTM_PL_TT].size;
+ vram_gtt.gtt_size *= PAGE_SIZE;
+@@ -524,17 +524,17 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
+ struct drm_amdgpu_memory_info mem;
+
+ memset(&mem, 0, sizeof(mem));
+- mem.vram.total_heap_size = adev->mc.real_vram_size;
++ mem.vram.total_heap_size = adev->gmc.real_vram_size;
+ mem.vram.usable_heap_size =
+- adev->mc.real_vram_size - adev->vram_pin_size;
++ adev->gmc.real_vram_size - adev->vram_pin_size;
+ mem.vram.heap_usage =
+ amdgpu_vram_mgr_usage(&adev->mman.bdev.man[TTM_PL_VRAM]);
+ mem.vram.max_allocation = mem.vram.usable_heap_size * 3 / 4;
+
+ mem.cpu_accessible_vram.total_heap_size =
+- adev->mc.visible_vram_size;
++ adev->gmc.visible_vram_size;
+ mem.cpu_accessible_vram.usable_heap_size =
+- adev->mc.visible_vram_size -
++ adev->gmc.visible_vram_size -
+ (adev->vram_pin_size - adev->invisible_pin_size);
+ mem.cpu_accessible_vram.heap_usage =
+ amdgpu_vram_mgr_vis_usage(&adev->mman.bdev.man[TTM_PL_VRAM]);
+@@ -639,8 +639,8 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
+ sizeof(adev->gfx.cu_info.ao_cu_bitmap));
+ memcpy(&dev_info.cu_bitmap[0], &adev->gfx.cu_info.bitmap[0],
+ sizeof(adev->gfx.cu_info.bitmap));
+- dev_info.vram_type = adev->mc.vram_type;
+- dev_info.vram_bit_width = adev->mc.vram_width;
++ dev_info.vram_type = adev->gmc.vram_type;
++ dev_info.vram_bit_width = adev->gmc.vram_width;
+ dev_info.vce_harvest_config = adev->vce.harvest_config;
+ dev_info.gc_double_offchip_lds_buf =
+ adev->gfx.config.double_offchip_lds_buf;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+index 99a7000..6119703 100755
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+@@ -105,7 +105,7 @@ void amdgpu_ttm_placement_from_domain(struct amdgpu_bo *abo, u32 domain)
+ }
+
+ if (domain & AMDGPU_GEM_DOMAIN_VRAM) {
+- unsigned visible_pfn = adev->mc.visible_vram_size >> PAGE_SHIFT;
++ unsigned visible_pfn = adev->gmc.visible_vram_size >> PAGE_SHIFT;
+
+ places[c].fpfn = 0;
+ places[c].lpfn = 0;
+@@ -125,7 +125,7 @@ void amdgpu_ttm_placement_from_domain(struct amdgpu_bo *abo, u32 domain)
+ if (domain & AMDGPU_GEM_DOMAIN_GTT) {
+ places[c].fpfn = 0;
+ if (flags & AMDGPU_GEM_CREATE_SHADOW)
+- places[c].lpfn = adev->mc.gart_size >> PAGE_SHIFT;
++ places[c].lpfn = adev->gmc.gart_size >> PAGE_SHIFT;
+ else
+ places[c].lpfn = 0;
+ places[c].flags = TTM_PL_FLAG_TT;
+@@ -448,9 +448,9 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev,
+ if (unlikely(r != 0))
+ return r;
+
+- if (adev->mc.visible_vram_size < adev->mc.real_vram_size &&
++ if (adev->gmc.visible_vram_size < adev->gmc.real_vram_size &&
+ bo->tbo.mem.mem_type == TTM_PL_VRAM &&
+- bo->tbo.mem.start < adev->mc.visible_vram_size >> PAGE_SHIFT)
++ bo->tbo.mem.start < adev->gmc.visible_vram_size >> PAGE_SHIFT)
+ amdgpu_cs_report_moved_bytes(adev, ctx.bytes_moved,
+ ctx.bytes_moved);
+ else
+@@ -867,25 +867,25 @@ static const char *amdgpu_vram_names[] = {
+ int amdgpu_bo_init(struct amdgpu_device *adev)
+ {
+ /* reserve PAT memory space to WC for VRAM */
+- arch_io_reserve_memtype_wc(adev->mc.aper_base,
+- adev->mc.aper_size);
++ arch_io_reserve_memtype_wc(adev->gmc.aper_base,
++ adev->gmc.aper_size);
+
+ /* Add an MTRR for the VRAM */
+- adev->mc.vram_mtrr = arch_phys_wc_add(adev->mc.aper_base,
+- adev->mc.aper_size);
++ adev->gmc.vram_mtrr = arch_phys_wc_add(adev->gmc.aper_base,
++ adev->gmc.aper_size);
+ DRM_INFO("Detected VRAM RAM=%lluM, BAR=%lluM\n",
+- adev->mc.mc_vram_size >> 20,
+- (unsigned long long)adev->mc.aper_size >> 20);
++ adev->gmc.mc_vram_size >> 20,
++ (unsigned long long)adev->gmc.aper_size >> 20);
+ DRM_INFO("RAM width %dbits %s\n",
+- adev->mc.vram_width, amdgpu_vram_names[adev->mc.vram_type]);
++ adev->gmc.vram_width, amdgpu_vram_names[adev->gmc.vram_type]);
+ return amdgpu_ttm_init(adev);
+ }
+
+ void amdgpu_bo_fini(struct amdgpu_device *adev)
+ {
+ amdgpu_ttm_fini(adev);
+- arch_phys_wc_del(adev->mc.vram_mtrr);
+- arch_io_free_memtype_wc(adev->mc.aper_base, adev->mc.aper_size);
++ arch_phys_wc_del(adev->gmc.vram_mtrr);
++ arch_io_free_memtype_wc(adev->gmc.aper_base, adev->gmc.aper_size);
+ }
+
+ int amdgpu_bo_fbdev_mmap(struct amdgpu_bo *bo,
+@@ -1014,7 +1014,7 @@ int amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
+
+ size = bo->mem.num_pages << PAGE_SHIFT;
+ offset = bo->mem.start << PAGE_SHIFT;
+- if ((offset + size) <= adev->mc.visible_vram_size)
++ if ((offset + size) <= adev->gmc.visible_vram_size)
+ return 0;
+
+ /* Can't move a pinned BO to visible VRAM */
+@@ -1037,7 +1037,7 @@ int amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
+ offset = bo->mem.start << PAGE_SHIFT;
+ /* this should never happen */
+ if (bo->mem.mem_type == TTM_PL_VRAM &&
+- (offset + size) > adev->mc.visible_vram_size)
++ (offset + size) > adev->gmc.visible_vram_size)
+ return -EINVAL;
+
+ return 0;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
+index ed8c373..30d84df 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
+@@ -42,7 +42,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)
+ /* Number of tests =
+ * (Total GTT - IB pool - writeback page - ring buffers) / test size
+ */
+- n = adev->mc.gart_size - AMDGPU_IB_POOL_SIZE*64*1024;
++ n = adev->gmc.gart_size - AMDGPU_IB_POOL_SIZE*64*1024;
+ for (i = 0; i < AMDGPU_MAX_RINGS; ++i)
+ if (adev->rings[i])
+ n -= adev->rings[i]->ring_size;
+@@ -142,10 +142,10 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)
+ "0x%16llx/0x%16llx)\n",
+ i, *vram_start, gart_start,
+ (unsigned long long)
+- (gart_addr - adev->mc.gart_start +
++ (gart_addr - adev->gmc.gart_start +
+ (void*)gart_start - gtt_map),
+ (unsigned long long)
+- (vram_addr - adev->mc.vram_start +
++ (vram_addr - adev->gmc.vram_start +
+ (void*)gart_start - gtt_map));
+ amdgpu_bo_kunmap(vram_obj);
+ goto out_lclean_unpin;
+@@ -187,10 +187,10 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)
+ "0x%16llx/0x%16llx)\n",
+ i, *gart_start, vram_start,
+ (unsigned long long)
+- (vram_addr - adev->mc.vram_start +
++ (vram_addr - adev->gmc.vram_start +
+ (void*)vram_start - vram_map),
+ (unsigned long long)
+- (gart_addr - adev->mc.gart_start +
++ (gart_addr - adev->gmc.gart_start +
+ (void*)vram_start - vram_map));
+ amdgpu_bo_kunmap(gtt_obj[i]);
+ goto out_lclean_unpin;
+@@ -200,7 +200,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)
+ amdgpu_bo_kunmap(gtt_obj[i]);
+
+ DRM_INFO("Tested GTT->VRAM and VRAM->GTT copy for GTT offset 0x%llx\n",
+- gart_addr - adev->mc.gart_start);
++ gart_addr - adev->gmc.gart_start);
+ continue;
+
+ out_lclean_unpin:
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+index e5a6623..64d0141 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+@@ -162,7 +162,7 @@ static int amdgpu_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
+ break;
+ case TTM_PL_TT:
+ man->func = &amdgpu_gtt_mgr_func;
+- man->gpu_offset = adev->mc.gart_start;
++ man->gpu_offset = adev->gmc.gart_start;
+ man->available_caching = TTM_PL_MASK_CACHING;
+ man->default_caching = TTM_PL_FLAG_CACHED;
+ man->flags = TTM_MEMTYPE_FLAG_MAPPABLE | TTM_MEMTYPE_FLAG_CMA;
+@@ -170,7 +170,7 @@ static int amdgpu_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
+ case TTM_PL_VRAM:
+ /* "On-card" video ram */
+ man->func = &amdgpu_vram_mgr_func;
+- man->gpu_offset = adev->mc.vram_start;
++ man->gpu_offset = adev->gmc.vram_start;
+ man->flags = TTM_MEMTYPE_FLAG_FIXED |
+ TTM_MEMTYPE_FLAG_MAPPABLE;
+ man->available_caching = TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC;
+@@ -236,9 +236,9 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo,
+ adev->mman.buffer_funcs_ring &&
+ adev->mman.buffer_funcs_ring->ready == false) {
+ amdgpu_ttm_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_CPU);
+- } else if (adev->mc.visible_vram_size < adev->mc.real_vram_size &&
++ } else if (adev->gmc.visible_vram_size < adev->gmc.real_vram_size &&
+ !(abo->flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED)) {
+- unsigned fpfn = adev->mc.visible_vram_size >> PAGE_SHIFT;
++ unsigned fpfn = adev->gmc.visible_vram_size >> PAGE_SHIFT;
+ struct drm_mm_node *node = bo->mem.mm_node;
+ unsigned long pages_left;
+
+@@ -697,9 +697,9 @@ static int amdgpu_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_
+ mem->bus.offset = (mem->start << PAGE_SHIFT) + man->gpu_offset -
+ adev->mc.vram_start;
+ /* check if it's visible */
+- if ((mem->bus.offset + mem->bus.size) > adev->mc.visible_vram_size)
++ if ((mem->bus.offset + mem->bus.size) > adev->gmc.visible_vram_size)
+ return -EINVAL;
+- mem->bus.base = adev->mc.aper_base;
++ mem->bus.base = adev->gmc.aper_base;
+ mem->bus.is_iomem = true;
+ break;
+ case AMDGPU_PL_DGMA_IMPORT:
+@@ -965,7 +965,7 @@ int amdgpu_ttm_alloc_gart(struct ttm_buffer_object *bo)
+ placement.num_busy_placement = 1;
+ placement.busy_placement = &placements;
+ placements.fpfn = 0;
+- placements.lpfn = adev->mc.gart_size >> PAGE_SHIFT;
++ placements.lpfn = adev->gmc.gart_size >> PAGE_SHIFT;
+ placements.flags = (bo->mem.placement & ~TTM_PL_MASK_MEM) |
+ TTM_PL_FLAG_TT;
+
+@@ -1296,7 +1296,7 @@ static int amdgpu_ttm_access_memory(struct ttm_buffer_object *bo,
+ nodes = amdgpu_find_mm_node(&abo->tbo.mem, &offset);
+ pos = (nodes->start << PAGE_SHIFT) + offset;
+
+- while (len && pos < adev->mc.mc_vram_size) {
++ while (len && pos < adev->gmc.mc_vram_size) {
+ uint64_t aligned_pos = pos & ~(uint64_t)3;
+ uint32_t bytes = 4 - (pos & 3);
+ uint32_t shift = (pos & 3) * 8;
+@@ -1535,7 +1535,7 @@ static int amdgpu_ttm_fw_reserve_vram_init(struct amdgpu_device *adev)
+ {
+ int r = 0;
+ int i;
+- u64 vram_size = adev->mc.visible_vram_size;
++ u64 vram_size = adev->gmc.visible_vram_size;
+ u64 offset = adev->fw_vram_usage.start_offset;
+ u64 size = adev->fw_vram_usage.size;
+ struct amdgpu_bo *bo;
+@@ -1625,7 +1625,7 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
+ }
+ adev->mman.initialized = true;
+ r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_VRAM,
+- adev->mc.real_vram_size >> PAGE_SHIFT);
++ adev->gmc.real_vram_size >> PAGE_SHIFT);
+ if (r) {
+ DRM_ERROR("Failed initializing VRAM heap.\n");
+ return r;
+@@ -1634,11 +1634,11 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
+ /* Reduce size of CPU-visible VRAM if requested */
+ vis_vram_limit = (u64)amdgpu_vis_vram_limit * 1024 * 1024;
+ if (amdgpu_vis_vram_limit > 0 &&
+- vis_vram_limit <= adev->mc.visible_vram_size)
+- adev->mc.visible_vram_size = vis_vram_limit;
++ vis_vram_limit <= adev->gmc.visible_vram_size)
++ adev->gmc.visible_vram_size = vis_vram_limit;
+
+ /* Change the size here instead of the init above so only lpfn is affected */
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.visible_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.visible_vram_size);
+
+ /*
+ *The reserved vram for firmware must be pinned to the specified
+@@ -1649,7 +1649,7 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
+ return r;
+ }
+
+- r = amdgpu_bo_create_kernel(adev, adev->mc.stolen_size, PAGE_SIZE,
++ r = amdgpu_bo_create_kernel(adev, adev->gmc.stolen_size, PAGE_SIZE,
+ AMDGPU_GEM_DOMAIN_VRAM,
+ &adev->stolen_vga_memory,
+ NULL, NULL);
+@@ -1657,14 +1657,14 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
+ return r;
+
+ DRM_INFO("amdgpu: %uM of VRAM memory ready\n",
+- (unsigned) (adev->mc.real_vram_size / (1024 * 1024)));
++ (unsigned) (adev->gmc.real_vram_size / (1024 * 1024)));
+
+ if (amdgpu_gtt_size == -1) {
+ struct sysinfo si;
+
+ si_meminfo(&si);
+ gtt_size = min(max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
+- adev->mc.mc_vram_size),
++ adev->gmc.mc_vram_size),
+ ((uint64_t)si.totalram * si.mem_unit * 3/4));
+ }
+ else
+@@ -1807,7 +1807,7 @@ static int amdgpu_map_buffer(struct ttm_buffer_object *bo,
+ BUG_ON(adev->mman.buffer_funcs->copy_max_bytes <
+ AMDGPU_GTT_MAX_TRANSFER_SIZE * 8);
+
+- *addr = adev->mc.gart_start;
++ *addr = adev->gmc.gart_start;
+ *addr += (u64)window * AMDGPU_GTT_MAX_TRANSFER_SIZE *
+ AMDGPU_GPU_PAGE_SIZE;
+
+@@ -2066,14 +2066,14 @@ static ssize_t amdgpu_ttm_vram_read(struct file *f, char __user *buf,
+ if (size & 0x3 || *pos & 0x3)
+ return -EINVAL;
+
+- if (*pos >= adev->mc.mc_vram_size)
++ if (*pos >= adev->gmc.mc_vram_size)
+ return -ENXIO;
+
+ while (size) {
+ unsigned long flags;
+ uint32_t value;
+
+- if (*pos >= adev->mc.mc_vram_size)
++ if (*pos >= adev->gmc.mc_vram_size)
+ return result;
+
+ spin_lock_irqsave(&adev->mmio_idx_lock, flags);
+@@ -2105,14 +2105,14 @@ static ssize_t amdgpu_ttm_vram_write(struct file *f, const char __user *buf,
+ if (size & 0x3 || *pos & 0x3)
+ return -EINVAL;
+
+- if (*pos >= adev->mc.mc_vram_size)
++ if (*pos >= adev->gmc.mc_vram_size)
+ return -ENXIO;
+
+ while (size) {
+ unsigned long flags;
+ uint32_t value;
+
+- if (*pos >= adev->mc.mc_vram_size)
++ if (*pos >= adev->gmc.mc_vram_size)
+ return result;
+
+ r = get_user(value, (uint32_t *)buf);
+@@ -2263,9 +2263,9 @@ static int amdgpu_ttm_debugfs_init(struct amdgpu_device *adev)
+ if (IS_ERR(ent))
+ return PTR_ERR(ent);
+ if (ttm_debugfs_entries[count].domain == TTM_PL_VRAM)
+- i_size_write(ent->d_inode, adev->mc.mc_vram_size);
++ i_size_write(ent->d_inode, adev->gmc.mc_vram_size);
+ else if (ttm_debugfs_entries[count].domain == TTM_PL_TT)
+- i_size_write(ent->d_inode, adev->mc.gart_size);
++ i_size_write(ent->d_inode, adev->gmc.gart_size);
+ adev->mman.debugfs_entries[count] = ent;
+ }
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+index 5c629dd..8a20e53 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+@@ -470,7 +470,7 @@ bool amdgpu_vm_need_pipeline_sync(struct amdgpu_ring *ring,
+
+ static bool amdgpu_vm_is_large_bar(struct amdgpu_device *adev)
+ {
+- return (adev->mc.real_vram_size == adev->mc.visible_vram_size);
++ return (adev->gmc.real_vram_size == adev->gmc.visible_vram_size);
+ }
+
+ /**
+@@ -684,8 +684,8 @@ static void amdgpu_vm_cpu_set_ptes(struct amdgpu_pte_update_params *params,
+ value = params->pages_addr ?
+ amdgpu_vm_map_gart(params->pages_addr, addr) :
+ addr;
+- amdgpu_gart_set_pte_pde(params->adev, (void *)(uintptr_t)pe,
+- i, value, flags);
++ amdgpu_gmc_set_pte_pde(params->adev, (void *)(uintptr_t)pe,
++ i, value, flags);
+ addr += incr;
+ }
+ }
+@@ -743,7 +743,7 @@ static void amdgpu_vm_update_pde(struct amdgpu_pte_update_params *params,
+ level += params->adev->vm_manager.root_level;
+ pt = amdgpu_bo_gpu_offset(bo);
+ flags = AMDGPU_PTE_VALID;
+- amdgpu_gart_get_vm_pde(params->adev, level, &pt, &flags);
++ amdgpu_gmc_get_vm_pde(params->adev, level, &pt, &flags);
+ if (shadow) {
+ pde = shadow_addr + (entry - parent->entries) * 8;
+ params->func(params, pde, pt, 1, 0, flags);
+@@ -972,8 +972,7 @@ static void amdgpu_vm_handle_huge_pages(struct amdgpu_pte_update_params *p,
+ }
+
+ entry->huge = true;
+- amdgpu_gart_get_vm_pde(p->adev, AMDGPU_VM_PDB0,
+- &dst, &flags);
++ amdgpu_gmc_get_vm_pde(p->adev, AMDGPU_VM_PDB0, &dst, &flags);
+
+ if (parent->base.bo->shadow) {
+ pd_addr = amdgpu_bo_gpu_offset(parent->base.bo->shadow);
+@@ -1512,7 +1511,7 @@ static void amdgpu_vm_update_prt_state(struct amdgpu_device *adev)
+
+ spin_lock_irqsave(&adev->vm_manager.prt_lock, flags);
+ enable = !!atomic_read(&adev->vm_manager.num_prt_users);
+- adev->gart.gart_funcs->set_prt(adev, enable);
++ adev->gmc.gmc_funcs->set_prt(adev, enable);
+ spin_unlock_irqrestore(&adev->vm_manager.prt_lock, flags);
+ }
+
+@@ -1521,7 +1520,7 @@ static void amdgpu_vm_update_prt_state(struct amdgpu_device *adev)
+ */
+ static void amdgpu_vm_prt_get(struct amdgpu_device *adev)
+ {
+- if (!adev->gart.gart_funcs->set_prt)
++ if (!adev->gmc.gmc_funcs->set_prt)
+ return;
+
+ if (atomic_inc_return(&adev->vm_manager.num_prt_users) == 1)
+@@ -1556,7 +1555,7 @@ static void amdgpu_vm_add_prt_cb(struct amdgpu_device *adev,
+ {
+ struct amdgpu_prt_cb *cb;
+
+- if (!adev->gart.gart_funcs->set_prt)
++ if (!adev->gmc.gmc_funcs->set_prt)
+ return;
+
+ cb = kmalloc(sizeof(struct amdgpu_prt_cb), GFP_KERNEL);
+@@ -2463,7 +2462,7 @@ static void amdgpu_vm_free_levels(struct amdgpu_device *adev,
+ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
+ {
+ struct amdgpu_bo_va_mapping *mapping, *tmp;
+- bool prt_fini_needed = !!adev->gart.gart_funcs->set_prt;
++ bool prt_fini_needed = !!adev->gmc.gmc_funcs->set_prt;
+ struct amdgpu_bo *root;
+ u64 fault;
+ int i, r;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
+index c9f3336..ae0049c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
+@@ -89,11 +89,11 @@ static u64 amdgpu_vram_mgr_vis_size(struct amdgpu_device *adev,
+ uint64_t start = node->start << PAGE_SHIFT;
+ uint64_t end = (node->size + node->start) << PAGE_SHIFT;
+
+- if (start >= adev->mc.visible_vram_size)
++ if (start >= adev->gmc.visible_vram_size)
+ return 0;
+
+- return (end > adev->mc.visible_vram_size ?
+- adev->mc.visible_vram_size : end) - start;
++ return (end > adev->gmc.visible_vram_size ?
++ adev->gmc.visible_vram_size : end) - start;
+ }
+
+ /**
+diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
+index a0943aa..ab45232 100644
+--- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
++++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
+@@ -905,7 +905,7 @@ static bool ci_dpm_vblank_too_short(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+ u32 vblank_time = amdgpu_dpm_get_vblank_time(adev);
+- u32 switch_limit = adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5 ? 450 : 300;
++ u32 switch_limit = adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5 ? 450 : 300;
+
+ /* disable mclk switching if the refresh is >120Hz, even if the
+ * blanking period would allow it
+@@ -2954,7 +2954,7 @@ static int ci_calculate_mclk_params(struct amdgpu_device *adev,
+ mpll_ad_func_cntl &= ~MPLL_AD_FUNC_CNTL__YCLK_POST_DIV_MASK;
+ mpll_ad_func_cntl |= (mpll_param.post_div << MPLL_AD_FUNC_CNTL__YCLK_POST_DIV__SHIFT);
+
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
+ mpll_dq_func_cntl &= ~(MPLL_DQ_FUNC_CNTL__YCLK_SEL_MASK |
+ MPLL_AD_FUNC_CNTL__YCLK_POST_DIV_MASK);
+ mpll_dq_func_cntl |= (mpll_param.yclk_sel << MPLL_DQ_FUNC_CNTL__YCLK_SEL__SHIFT) |
+@@ -3077,7 +3077,7 @@ static int ci_populate_single_memory_level(struct amdgpu_device *adev,
+ (memory_clock <= pi->mclk_strobe_mode_threshold))
+ memory_level->StrobeEnable = 1;
+
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
+ memory_level->StrobeRatio =
+ ci_get_mclk_frequency_ratio(memory_clock, memory_level->StrobeEnable);
+ if (pi->mclk_edc_enable_threshold &&
+@@ -3752,7 +3752,7 @@ static int ci_init_smc_table(struct amdgpu_device *adev)
+ if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_STEPVDDC)
+ table->SystemFlags |= PPSMC_SYSTEMFLAG_STEPVDDC;
+
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5)
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5)
+ table->SystemFlags |= PPSMC_SYSTEMFLAG_GDDR5;
+
+ if (ulv->supported) {
+@@ -4549,12 +4549,12 @@ static int ci_set_mc_special_registers(struct amdgpu_device *adev,
+ for (k = 0; k < table->num_entries; k++) {
+ table->mc_reg_table_entry[k].mc_data[j] =
+ (temp_reg & 0xffff0000) | (table->mc_reg_table_entry[k].mc_data[i] & 0x0000ffff);
+- if (adev->mc.vram_type != AMDGPU_VRAM_TYPE_GDDR5)
++ if (adev->gmc.vram_type != AMDGPU_VRAM_TYPE_GDDR5)
+ table->mc_reg_table_entry[k].mc_data[j] |= 0x100;
+ }
+ j++;
+
+- if (adev->mc.vram_type != AMDGPU_VRAM_TYPE_GDDR5) {
++ if (adev->gmc.vram_type != AMDGPU_VRAM_TYPE_GDDR5) {
+ if (j >= SMU7_DISCRETE_MC_REGISTER_ARRAY_SIZE)
+ return -EINVAL;
+ table->mc_reg_address[j].s1 = mmMC_PMG_AUTO_CMD;
+diff --git a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
+index 0066da3..3ea0be5 100644
+--- a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
++++ b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
+@@ -317,7 +317,7 @@ static void cik_sdma_gfx_stop(struct amdgpu_device *adev)
+
+ if ((adev->mman.buffer_funcs_ring == sdma0) ||
+ (adev->mman.buffer_funcs_ring == sdma1))
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.visible_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.visible_vram_size);
+
+ for (i = 0; i < adev->sdma.num_instances; i++) {
+ rb_cntl = RREG32(mmSDMA0_GFX_RB_CNTL + sdma_offsets[i]);
+@@ -517,7 +517,7 @@ static int cik_sdma_gfx_resume(struct amdgpu_device *adev)
+ }
+
+ if (adev->mman.buffer_funcs_ring == ring)
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.real_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.real_vram_size);
+ }
+
+ return 0;
+diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+index f34bc68..5590bf1 100644
+--- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+@@ -2824,7 +2824,7 @@ static int dce_v10_0_sw_init(void *handle)
+ adev->ddev->mode_config.preferred_depth = 24;
+ adev->ddev->mode_config.prefer_shadow = 1;
+
+- adev->ddev->mode_config.fb_base = adev->mc.aper_base;
++ adev->ddev->mode_config.fb_base = adev->gmc.aper_base;
+
+ r = amdgpu_modeset_create_props(adev);
+ if (r)
+diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
+index 26378bd..8ee4fc4 100644
+--- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
+@@ -2939,7 +2939,7 @@ static int dce_v11_0_sw_init(void *handle)
+ adev->ddev->mode_config.preferred_depth = 24;
+ adev->ddev->mode_config.prefer_shadow = 1;
+
+- adev->ddev->mode_config.fb_base = adev->mc.aper_base;
++ adev->ddev->mode_config.fb_base = adev->gmc.aper_base;
+
+ r = amdgpu_modeset_create_props(adev);
+ if (r)
+diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
+index bd2c4f7..c943ad1 100644
+--- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
+@@ -2693,7 +2693,7 @@ static int dce_v6_0_sw_init(void *handle)
+ adev->ddev->mode_config.max_height = 16384;
+ adev->ddev->mode_config.preferred_depth = 24;
+ adev->ddev->mode_config.prefer_shadow = 1;
+- adev->ddev->mode_config.fb_base = adev->mc.aper_base;
++ adev->ddev->mode_config.fb_base = adev->gmc.aper_base;
+
+ r = amdgpu_modeset_create_props(adev);
+ if (r)
+diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+index c008dc0..c02308c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+@@ -2724,7 +2724,7 @@ static int dce_v8_0_sw_init(void *handle)
+ adev->ddev->mode_config.preferred_depth = 24;
+ adev->ddev->mode_config.prefer_shadow = 1;
+
+- adev->ddev->mode_config.fb_base = adev->mc.aper_base;
++ adev->ddev->mode_config.fb_base = adev->gmc.aper_base;
+
+ r = amdgpu_modeset_create_props(adev);
+ if (r)
+diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
+index f111bae..24e9cdb 100644
+--- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
++++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
+@@ -406,7 +406,7 @@ static int dce_virtual_sw_init(void *handle)
+ adev->ddev->mode_config.preferred_depth = 24;
+ adev->ddev->mode_config.prefer_shadow = 1;
+
+- adev->ddev->mode_config.fb_base = adev->mc.aper_base;
++ adev->ddev->mode_config.fb_base = adev->gmc.aper_base;
+
+ r = amdgpu_modeset_create_props(adev);
+ if (r)
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+index a8a06b3..9b52a68 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+@@ -1946,7 +1946,7 @@ static void gfx_v7_0_gpu_init(struct amdgpu_device *adev)
+ if (i == 0)
+ sh_mem_base = 0;
+ else
+- sh_mem_base = adev->mc.shared_aperture_start >> 48;
++ sh_mem_base = adev->gmc.shared_aperture_start >> 48;
+ cik_srbm_select(adev, 0, 0, 0, i);
+ /* CP and shaders */
+ WREG32(mmSH_MEM_CONFIG, sh_mem_cfg);
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+index 3a2011f..c3207af 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+@@ -3799,7 +3799,7 @@ static void gfx_v8_0_gpu_init(struct amdgpu_device *adev)
+ tmp = REG_SET_FIELD(tmp, SH_MEM_CONFIG, ALIGNMENT_MODE,
+ SH_MEM_ALIGNMENT_MODE_UNALIGNED);
+ WREG32(mmSH_MEM_CONFIG, tmp);
+- tmp = adev->mc.shared_aperture_start >> 48;
++ tmp = adev->gmc.shared_aperture_start >> 48;
+ WREG32(mmSH_MEM_BASES, tmp);
+ }
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+index 3e36448..896ce92 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+@@ -1539,7 +1539,7 @@ static void gfx_v9_0_gpu_init(struct amdgpu_device *adev)
+ tmp = REG_SET_FIELD(0, SH_MEM_CONFIG, ALIGNMENT_MODE,
+ SH_MEM_ALIGNMENT_MODE_UNALIGNED);
+ WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, tmp);
+- tmp = adev->mc.shared_aperture_start >> 48;
++ tmp = adev->gmc.shared_aperture_start >> 48;
+ WREG32_SOC15(GC, 0, mmSH_MEM_BASES, tmp);
+ }
+ }
+@@ -3694,11 +3694,11 @@ static void gfx_v9_0_ring_emit_vm_flush(struct amdgpu_ring *ring,
+ {
+ struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub];
+ int usepfp = (ring->funcs->type == AMDGPU_RING_TYPE_GFX);
+- uint32_t req = ring->adev->gart.gart_funcs->get_invalidate_req(vmid);
++ uint32_t req = ring->adev->gmc.gmc_funcs->get_invalidate_req(vmid);
+ uint64_t flags = AMDGPU_PTE_VALID;
+ unsigned eng = ring->vm_inv_eng;
+
+- amdgpu_gart_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
++ amdgpu_gmc_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
+ pd_addr |= flags;
+
+ gfx_v9_0_write_data_to_reg(ring, usepfp, true,
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
+index 56f5fe4..94a07bc 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
+@@ -40,7 +40,7 @@ static void gfxhub_v1_0_init_gart_pt_regs(struct amdgpu_device *adev)
+ uint64_t value;
+
+ BUG_ON(adev->gart.table_addr & (~0x0000FFFFFFFFF000ULL));
+- value = adev->gart.table_addr - adev->mc.vram_start
++ value = adev->gart.table_addr - adev->gmc.vram_start
+ + adev->vm_manager.vram_base_offset;
+ value &= 0x0000FFFFFFFFF000ULL;
+ value |= 0x1; /*valid bit*/
+@@ -57,14 +57,14 @@ static void gfxhub_v1_0_init_gart_aperture_regs(struct amdgpu_device *adev)
+ gfxhub_v1_0_init_gart_pt_regs(adev);
+
+ WREG32_SOC15(GC, 0, mmVM_CONTEXT0_PAGE_TABLE_START_ADDR_LO32,
+- (u32)(adev->mc.gart_start >> 12));
++ (u32)(adev->gmc.gart_start >> 12));
+ WREG32_SOC15(GC, 0, mmVM_CONTEXT0_PAGE_TABLE_START_ADDR_HI32,
+- (u32)(adev->mc.gart_start >> 44));
++ (u32)(adev->gmc.gart_start >> 44));
+
+ WREG32_SOC15(GC, 0, mmVM_CONTEXT0_PAGE_TABLE_END_ADDR_LO32,
+- (u32)(adev->mc.gart_end >> 12));
++ (u32)(adev->gmc.gart_end >> 12));
+ WREG32_SOC15(GC, 0, mmVM_CONTEXT0_PAGE_TABLE_END_ADDR_HI32,
+- (u32)(adev->mc.gart_end >> 44));
++ (u32)(adev->gmc.gart_end >> 44));
+ }
+
+ static void gfxhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev)
+@@ -78,12 +78,12 @@ static void gfxhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev)
+
+ /* Program the system aperture low logical page number. */
+ WREG32_SOC15(GC, 0, mmMC_VM_SYSTEM_APERTURE_LOW_ADDR,
+- adev->mc.vram_start >> 18);
++ adev->gmc.vram_start >> 18);
+ WREG32_SOC15(GC, 0, mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR,
+- adev->mc.vram_end >> 18);
++ adev->gmc.vram_end >> 18);
+
+ /* Set default page address. */
+- value = adev->vram_scratch.gpu_addr - adev->mc.vram_start
++ value = adev->vram_scratch.gpu_addr - adev->gmc.vram_start
+ + adev->vm_manager.vram_base_offset;
+ WREG32_SOC15(GC, 0, mmMC_VM_SYSTEM_APERTURE_DEFAULT_ADDR_LSB,
+ (u32)(value >> 12));
+@@ -143,7 +143,7 @@ static void gfxhub_v1_0_init_cache_regs(struct amdgpu_device *adev)
+ WREG32_SOC15(GC, 0, mmVM_L2_CNTL2, tmp);
+
+ tmp = mmVM_L2_CNTL3_DEFAULT;
+- if (adev->mc.translate_further) {
++ if (adev->gmc.translate_further) {
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, BANK_SELECT, 12);
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3,
+ L2_CACHE_BIGK_FRAGMENT_SIZE, 9);
+@@ -195,7 +195,7 @@ static void gfxhub_v1_0_setup_vmid_config(struct amdgpu_device *adev)
+
+ num_level = adev->vm_manager.num_level;
+ block_size = adev->vm_manager.block_size;
+- if (adev->mc.translate_further)
++ if (adev->gmc.translate_further)
+ num_level -= 1;
+ else
+ block_size -= 9;
+@@ -257,9 +257,9 @@ int gfxhub_v1_0_gart_enable(struct amdgpu_device *adev)
+ * SRIOV driver need to program them
+ */
+ WREG32_SOC15(GC, 0, mmMC_VM_FB_LOCATION_BASE,
+- adev->mc.vram_start >> 24);
++ adev->gmc.vram_start >> 24);
+ WREG32_SOC15(GC, 0, mmMC_VM_FB_LOCATION_TOP,
+- adev->mc.vram_end >> 24);
++ adev->gmc.vram_end >> 24);
+ }
+
+ /* GART Enable. */
+diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
+index ee2e2a8..32fd4e2 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
+@@ -36,7 +36,7 @@
+ #include "dce/dce_6_0_sh_mask.h"
+ #include "si_enums.h"
+
+-static void gmc_v6_0_set_gart_funcs(struct amdgpu_device *adev);
++static void gmc_v6_0_set_gmc_funcs(struct amdgpu_device *adev);
+ static void gmc_v6_0_set_irq_funcs(struct amdgpu_device *adev);
+ static int gmc_v6_0_wait_for_idle(void *handle);
+
+@@ -136,19 +136,19 @@ static int gmc_v6_0_init_microcode(struct amdgpu_device *adev)
+ snprintf(fw_name, sizeof(fw_name), "radeon/si58_mc.bin");
+ else
+ snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name);
+- err = request_firmware(&adev->mc.fw, fw_name, adev->dev);
++ err = request_firmware(&adev->gmc.fw, fw_name, adev->dev);
+ if (err)
+ goto out;
+
+- err = amdgpu_ucode_validate(adev->mc.fw);
++ err = amdgpu_ucode_validate(adev->gmc.fw);
+
+ out:
+ if (err) {
+ dev_err(adev->dev,
+ "si_mc: Failed to load firmware \"%s\"\n",
+ fw_name);
+- release_firmware(adev->mc.fw);
+- adev->mc.fw = NULL;
++ release_firmware(adev->gmc.fw);
++ adev->gmc.fw = NULL;
+ }
+ return err;
+ }
+@@ -161,20 +161,20 @@ static int gmc_v6_0_mc_load_microcode(struct amdgpu_device *adev)
+ int i, regs_size, ucode_size;
+ const struct mc_firmware_header_v1_0 *hdr;
+
+- if (!adev->mc.fw)
++ if (!adev->gmc.fw)
+ return -EINVAL;
+
+- hdr = (const struct mc_firmware_header_v1_0 *)adev->mc.fw->data;
++ hdr = (const struct mc_firmware_header_v1_0 *)adev->gmc.fw->data;
+
+ amdgpu_ucode_print_mc_hdr(&hdr->header);
+
+- adev->mc.fw_version = le32_to_cpu(hdr->header.ucode_version);
++ adev->gmc.fw_version = le32_to_cpu(hdr->header.ucode_version);
+ regs_size = le32_to_cpu(hdr->io_debug_size_bytes) / (4 * 2);
+ new_io_mc_regs = (const __le32 *)
+- (adev->mc.fw->data + le32_to_cpu(hdr->io_debug_array_offset_bytes));
++ (adev->gmc.fw->data + le32_to_cpu(hdr->io_debug_array_offset_bytes));
+ ucode_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4;
+ new_fw_data = (const __le32 *)
+- (adev->mc.fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
++ (adev->gmc.fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+
+ running = RREG32(mmMC_SEQ_SUP_CNTL) & MC_SEQ_SUP_CNTL__RUN_MASK;
+
+@@ -217,12 +217,12 @@ static int gmc_v6_0_mc_load_microcode(struct amdgpu_device *adev)
+ }
+
+ static void gmc_v6_0_vram_gtt_location(struct amdgpu_device *adev,
+- struct amdgpu_mc *mc)
++ struct amdgpu_gmc *mc)
+ {
+ u64 base = RREG32(mmMC_VM_FB_LOCATION) & 0xFFFF;
+ base <<= 24;
+
+- amdgpu_device_vram_location(adev, &adev->mc, base);
++ amdgpu_device_vram_location(adev, &adev->gmc, base);
+ amdgpu_device_gart_location(adev, mc);
+ }
+
+@@ -259,9 +259,9 @@ static void gmc_v6_0_mc_program(struct amdgpu_device *adev)
+ }
+ /* Update configuration */
+ WREG32(mmMC_VM_SYSTEM_APERTURE_LOW_ADDR,
+- adev->mc.vram_start >> 12);
++ adev->gmc.vram_start >> 12);
+ WREG32(mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR,
+- adev->mc.vram_end >> 12);
++ adev->gmc.vram_end >> 12);
+ WREG32(mmMC_VM_SYSTEM_APERTURE_DEFAULT_ADDR,
+ adev->vram_scratch.gpu_addr >> 12);
+ WREG32(mmMC_VM_AGP_BASE, 0);
+@@ -319,10 +319,10 @@ static int gmc_v6_0_mc_init(struct amdgpu_device *adev)
+ numchan = 16;
+ break;
+ }
+- adev->mc.vram_width = numchan * chansize;
++ adev->gmc.vram_width = numchan * chansize;
+ /* size in MB on si */
+- adev->mc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+- adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
++ adev->gmc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
++ adev->gmc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+
+ #if !defined(BUILD_AS_DKMS) || LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
+ if (!(adev->flags & AMD_IS_APU)) {
+@@ -331,44 +331,41 @@ static int gmc_v6_0_mc_init(struct amdgpu_device *adev)
+ return r;
+ }
+ #endif
+- adev->mc.aper_base = pci_resource_start(adev->pdev, 0);
+- adev->mc.aper_size = pci_resource_len(adev->pdev, 0);
+- adev->mc.visible_vram_size = adev->mc.aper_size;
++ adev->gmc.aper_base = pci_resource_start(adev->pdev, 0);
++ adev->gmc.aper_size = pci_resource_len(adev->pdev, 0);
++ adev->gmc.visible_vram_size = adev->gmc.aper_size;
+
+ /* set the gart size */
+ if (amdgpu_gart_size == -1) {
+ switch (adev->asic_type) {
+ case CHIP_HAINAN: /* no MM engines */
+ default:
+- adev->mc.gart_size = 256ULL << 20;
++ adev->gmc.gart_size = 256ULL << 20;
+ break;
+ case CHIP_VERDE: /* UVD, VCE do not support GPUVM */
+ case CHIP_TAHITI: /* UVD, VCE do not support GPUVM */
+ case CHIP_PITCAIRN: /* UVD, VCE do not support GPUVM */
+ case CHIP_OLAND: /* UVD, VCE do not support GPUVM */
+- adev->mc.gart_size = 1024ULL << 20;
++ adev->gmc.gart_size = 1024ULL << 20;
+ break;
+ }
+ } else {
+- adev->mc.gart_size = (u64)amdgpu_gart_size << 20;
++ adev->gmc.gart_size = (u64)amdgpu_gart_size << 20;
+ }
+
+- gmc_v6_0_vram_gtt_location(adev, &adev->mc);
++ gmc_v6_0_vram_gtt_location(adev, &adev->gmc);
+
+ return 0;
+ }
+
+-static void gmc_v6_0_gart_flush_gpu_tlb(struct amdgpu_device *adev,
+- uint32_t vmid)
++static void gmc_v6_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid)
+ {
+ WREG32(mmVM_INVALIDATE_REQUEST, 1 << vmid);
+ }
+
+-static int gmc_v6_0_gart_set_pte_pde(struct amdgpu_device *adev,
+- void *cpu_pt_addr,
+- uint32_t gpu_page_idx,
+- uint64_t addr,
+- uint64_t flags)
++static int gmc_v6_0_set_pte_pde(struct amdgpu_device *adev, void *cpu_pt_addr,
++ uint32_t gpu_page_idx, uint64_t addr,
++ uint64_t flags)
+ {
+ void __iomem *ptr = (void *)cpu_pt_addr;
+ uint64_t value;
+@@ -432,9 +429,9 @@ static void gmc_v6_0_set_prt(struct amdgpu_device *adev, bool enable)
+ {
+ u32 tmp;
+
+- if (enable && !adev->mc.prt_warning) {
++ if (enable && !adev->gmc.prt_warning) {
+ dev_warn(adev->dev, "Disabling VM faults because of PRT request!\n");
+- adev->mc.prt_warning = true;
++ adev->gmc.prt_warning = true;
+ }
+
+ tmp = RREG32(mmVM_PRT_CNTL);
+@@ -514,8 +511,8 @@ static int gmc_v6_0_gart_enable(struct amdgpu_device *adev)
+ (field << VM_L2_CNTL3__BANK_SELECT__SHIFT) |
+ (field << VM_L2_CNTL3__L2_CACHE_BIGK_FRAGMENT_SIZE__SHIFT));
+ /* setup context0 */
+- WREG32(mmVM_CONTEXT0_PAGE_TABLE_START_ADDR, adev->mc.gart_start >> 12);
+- WREG32(mmVM_CONTEXT0_PAGE_TABLE_END_ADDR, adev->mc.gart_end >> 12);
++ WREG32(mmVM_CONTEXT0_PAGE_TABLE_START_ADDR, adev->gmc.gart_start >> 12);
++ WREG32(mmVM_CONTEXT0_PAGE_TABLE_END_ADDR, adev->gmc.gart_end >> 12);
+ WREG32(mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR, adev->gart.table_addr >> 12);
+ WREG32(mmVM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR,
+ (u32)(adev->dummy_page.addr >> 12));
+@@ -560,9 +557,9 @@ static int gmc_v6_0_gart_enable(struct amdgpu_device *adev)
+ else
+ gmc_v6_0_set_fault_enable_default(adev, true);
+
+- gmc_v6_0_gart_flush_gpu_tlb(adev, 0);
++ gmc_v6_0_flush_gpu_tlb(adev, 0);
+ dev_info(adev->dev, "PCIE GART of %uM enabled (table at 0x%016llX).\n",
+- (unsigned)(adev->mc.gart_size >> 20),
++ (unsigned)(adev->gmc.gart_size >> 20),
+ (unsigned long long)adev->gart.table_addr);
+ adev->gart.ready = true;
+ return 0;
+@@ -794,7 +791,7 @@ static int gmc_v6_0_early_init(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+- gmc_v6_0_set_gart_funcs(adev);
++ gmc_v6_0_set_gmc_funcs(adev);
+ gmc_v6_0_set_irq_funcs(adev);
+
+ return 0;
+@@ -805,7 +802,7 @@ static int gmc_v6_0_late_init(void *handle)
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+ if (amdgpu_vm_fault_stop != AMDGPU_VM_FAULT_STOP_ALWAYS)
+- return amdgpu_irq_get(adev, &adev->mc.vm_fault, 0);
++ return amdgpu_irq_get(adev, &adev->gmc.vm_fault, 0);
+ else
+ return 0;
+ }
+@@ -817,26 +814,26 @@ static int gmc_v6_0_sw_init(void *handle)
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+ if (adev->flags & AMD_IS_APU) {
+- adev->mc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN;
++ adev->gmc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN;
+ } else {
+ u32 tmp = RREG32(mmMC_SEQ_MISC0);
+ tmp &= MC_SEQ_MISC0__MT__MASK;
+- adev->mc.vram_type = gmc_v6_0_convert_vram_type(tmp);
++ adev->gmc.vram_type = gmc_v6_0_convert_vram_type(tmp);
+ }
+
+- r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 146, &adev->mc.vm_fault);
++ r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 146, &adev->gmc.vm_fault);
+ if (r)
+ return r;
+
+- r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 147, &adev->mc.vm_fault);
++ r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 147, &adev->gmc.vm_fault);
+ if (r)
+ return r;
+
+ amdgpu_vm_adjust_size(adev, 64, 9, 1, 40);
+
+- adev->mc.mc_mask = 0xffffffffffULL;
++ adev->gmc.mc_mask = 0xffffffffffULL;
+
+- adev->mc.stolen_size = 256 * 1024;
++ adev->gmc.stolen_size = 256 * 1024;
+
+ adev->need_dma32 = false;
+ dma_bits = adev->need_dma32 ? 32 : 40;
+@@ -900,8 +897,8 @@ static int gmc_v6_0_sw_fini(void *handle)
+ amdgpu_vm_manager_fini(adev);
+ gmc_v6_0_gart_fini(adev);
+ amdgpu_bo_fini(adev);
+- release_firmware(adev->mc.fw);
+- adev->mc.fw = NULL;
++ release_firmware(adev->gmc.fw);
++ adev->gmc.fw = NULL;
+
+ return 0;
+ }
+@@ -932,7 +929,7 @@ static int gmc_v6_0_hw_fini(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+- amdgpu_irq_put(adev, &adev->mc.vm_fault, 0);
++ amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
+ gmc_v6_0_gart_disable(adev);
+
+ return 0;
+@@ -1127,9 +1124,9 @@ static const struct amd_ip_funcs gmc_v6_0_ip_funcs = {
+ .set_powergating_state = gmc_v6_0_set_powergating_state,
+ };
+
+-static const struct amdgpu_gart_funcs gmc_v6_0_gart_funcs = {
+- .flush_gpu_tlb = gmc_v6_0_gart_flush_gpu_tlb,
+- .set_pte_pde = gmc_v6_0_gart_set_pte_pde,
++static const struct amdgpu_gmc_funcs gmc_v6_0_gmc_funcs = {
++ .flush_gpu_tlb = gmc_v6_0_flush_gpu_tlb,
++ .set_pte_pde = gmc_v6_0_set_pte_pde,
+ .set_prt = gmc_v6_0_set_prt,
+ .get_vm_pde = gmc_v6_0_get_vm_pde,
+ .get_vm_pte_flags = gmc_v6_0_get_vm_pte_flags
+@@ -1140,16 +1137,16 @@ static const struct amdgpu_irq_src_funcs gmc_v6_0_irq_funcs = {
+ .process = gmc_v6_0_process_interrupt,
+ };
+
+-static void gmc_v6_0_set_gart_funcs(struct amdgpu_device *adev)
++static void gmc_v6_0_set_gmc_funcs(struct amdgpu_device *adev)
+ {
+- if (adev->gart.gart_funcs == NULL)
+- adev->gart.gart_funcs = &gmc_v6_0_gart_funcs;
++ if (adev->gmc.gmc_funcs == NULL)
++ adev->gmc.gmc_funcs = &gmc_v6_0_gmc_funcs;
+ }
+
+ static void gmc_v6_0_set_irq_funcs(struct amdgpu_device *adev)
+ {
+- adev->mc.vm_fault.num_types = 1;
+- adev->mc.vm_fault.funcs = &gmc_v6_0_irq_funcs;
++ adev->gmc.vm_fault.num_types = 1;
++ adev->gmc.vm_fault.funcs = &gmc_v6_0_irq_funcs;
+ }
+
+ const struct amdgpu_ip_block_version gmc_v6_0_ip_block =
+diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+index 754dd0c..7874326 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+@@ -43,7 +43,7 @@
+
+ #include "amdgpu_atombios.h"
+
+-static void gmc_v7_0_set_gart_funcs(struct amdgpu_device *adev);
++static void gmc_v7_0_set_gmc_funcs(struct amdgpu_device *adev);
+ static void gmc_v7_0_set_irq_funcs(struct amdgpu_device *adev);
+ static int gmc_v7_0_wait_for_idle(void *handle);
+
+@@ -152,16 +152,16 @@ static int gmc_v7_0_init_microcode(struct amdgpu_device *adev)
+ else
+ snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name);
+
+- err = request_firmware(&adev->mc.fw, fw_name, adev->dev);
++ err = request_firmware(&adev->gmc.fw, fw_name, adev->dev);
+ if (err)
+ goto out;
+- err = amdgpu_ucode_validate(adev->mc.fw);
++ err = amdgpu_ucode_validate(adev->gmc.fw);
+
+ out:
+ if (err) {
+ pr_err("cik_mc: Failed to load firmware \"%s\"\n", fw_name);
+- release_firmware(adev->mc.fw);
+- adev->mc.fw = NULL;
++ release_firmware(adev->gmc.fw);
++ adev->gmc.fw = NULL;
+ }
+ return err;
+ }
+@@ -182,19 +182,19 @@ static int gmc_v7_0_mc_load_microcode(struct amdgpu_device *adev)
+ u32 running;
+ int i, ucode_size, regs_size;
+
+- if (!adev->mc.fw)
++ if (!adev->gmc.fw)
+ return -EINVAL;
+
+- hdr = (const struct mc_firmware_header_v1_0 *)adev->mc.fw->data;
++ hdr = (const struct mc_firmware_header_v1_0 *)adev->gmc.fw->data;
+ amdgpu_ucode_print_mc_hdr(&hdr->header);
+
+- adev->mc.fw_version = le32_to_cpu(hdr->header.ucode_version);
++ adev->gmc.fw_version = le32_to_cpu(hdr->header.ucode_version);
+ regs_size = le32_to_cpu(hdr->io_debug_size_bytes) / (4 * 2);
+ io_mc_regs = (const __le32 *)
+- (adev->mc.fw->data + le32_to_cpu(hdr->io_debug_array_offset_bytes));
++ (adev->gmc.fw->data + le32_to_cpu(hdr->io_debug_array_offset_bytes));
+ ucode_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4;
+ fw_data = (const __le32 *)
+- (adev->mc.fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
++ (adev->gmc.fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+
+ running = REG_GET_FIELD(RREG32(mmMC_SEQ_SUP_CNTL), MC_SEQ_SUP_CNTL, RUN);
+
+@@ -236,12 +236,12 @@ static int gmc_v7_0_mc_load_microcode(struct amdgpu_device *adev)
+ }
+
+ static void gmc_v7_0_vram_gtt_location(struct amdgpu_device *adev,
+- struct amdgpu_mc *mc)
++ struct amdgpu_gmc *mc)
+ {
+ u64 base = RREG32(mmMC_VM_FB_LOCATION) & 0xFFFF;
+ base <<= 24;
+
+- amdgpu_device_vram_location(adev, &adev->mc, base);
++ amdgpu_device_vram_location(adev, &adev->gmc, base);
+ amdgpu_device_gart_location(adev, mc);
+ }
+
+@@ -284,9 +284,9 @@ static void gmc_v7_0_mc_program(struct amdgpu_device *adev)
+ }
+ /* Update configuration */
+ WREG32(mmMC_VM_SYSTEM_APERTURE_LOW_ADDR,
+- adev->mc.vram_start >> 12);
++ adev->gmc.vram_start >> 12);
+ WREG32(mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR,
+- adev->mc.vram_end >> 12);
++ adev->gmc.vram_end >> 12);
+ WREG32(mmMC_VM_SYSTEM_APERTURE_DEFAULT_ADDR,
+ adev->vram_scratch.gpu_addr >> 12);
+ WREG32(mmMC_VM_AGP_BASE, 0);
+@@ -319,8 +319,8 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev)
+ {
+ int r;
+
+- adev->mc.vram_width = amdgpu_atombios_get_vram_width(adev);
+- if (!adev->mc.vram_width) {
++ adev->gmc.vram_width = amdgpu_atombios_get_vram_width(adev);
++ if (!adev->gmc.vram_width) {
+ u32 tmp;
+ int chansize, numchan;
+
+@@ -362,11 +362,11 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev)
+ numchan = 16;
+ break;
+ }
+- adev->mc.vram_width = numchan * chansize;
++ adev->gmc.vram_width = numchan * chansize;
+ }
+ /* size in MB on si */
+- adev->mc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+- adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
++ adev->gmc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
++ adev->gmc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+
+ #if !defined(BUILD_AS_DKMS) || LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
+ if (!(adev->flags & AMD_IS_APU)) {
+@@ -375,27 +375,27 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev)
+ return r;
+ }
+ #endif
+- adev->mc.aper_base = pci_resource_start(adev->pdev, 0);
+- adev->mc.aper_size = pci_resource_len(adev->pdev, 0);
++ adev->gmc.aper_base = pci_resource_start(adev->pdev, 0);
++ adev->gmc.aper_size = pci_resource_len(adev->pdev, 0);
+
+ #ifdef CONFIG_X86_64
+ if (adev->flags & AMD_IS_APU) {
+- adev->mc.aper_base = ((u64)RREG32(mmMC_VM_FB_OFFSET)) << 22;
+- adev->mc.aper_size = adev->mc.real_vram_size;
++ adev->gmc.aper_base = ((u64)RREG32(mmMC_VM_FB_OFFSET)) << 22;
++ adev->gmc.aper_size = adev->gmc.real_vram_size;
+ }
+ #endif
+
+ /* In case the PCI BAR is larger than the actual amount of vram */
+- adev->mc.visible_vram_size = adev->mc.aper_size;
+- if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
+- adev->mc.visible_vram_size = adev->mc.real_vram_size;
++ adev->gmc.visible_vram_size = adev->gmc.aper_size;
++ if (adev->gmc.visible_vram_size > adev->gmc.real_vram_size)
++ adev->gmc.visible_vram_size = adev->gmc.real_vram_size;
+
+ /* set the gart size */
+ if (amdgpu_gart_size == -1) {
+ switch (adev->asic_type) {
+ case CHIP_TOPAZ: /* no MM engines */
+ default:
+- adev->mc.gart_size = 256ULL << 20;
++ adev->gmc.gart_size = 256ULL << 20;
+ break;
+ #ifdef CONFIG_DRM_AMDGPU_CIK
+ case CHIP_BONAIRE: /* UVD, VCE do not support GPUVM */
+@@ -403,15 +403,15 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev)
+ case CHIP_KAVERI: /* UVD, VCE do not support GPUVM */
+ case CHIP_KABINI: /* UVD, VCE do not support GPUVM */
+ case CHIP_MULLINS: /* UVD, VCE do not support GPUVM */
+- adev->mc.gart_size = 1024ULL << 20;
++ adev->gmc.gart_size = 1024ULL << 20;
+ break;
+ #endif
+ }
+ } else {
+- adev->mc.gart_size = (u64)amdgpu_gart_size << 20;
++ adev->gmc.gart_size = (u64)amdgpu_gart_size << 20;
+ }
+
+- gmc_v7_0_vram_gtt_location(adev, &adev->mc);
++ gmc_v7_0_vram_gtt_location(adev, &adev->gmc);
+
+ return 0;
+ }
+@@ -424,22 +424,21 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev)
+ */
+
+ /**
+- * gmc_v7_0_gart_flush_gpu_tlb - gart tlb flush callback
++ * gmc_v7_0_flush_gpu_tlb - gart tlb flush callback
+ *
+ * @adev: amdgpu_device pointer
+ * @vmid: vm instance to flush
+ *
+ * Flush the TLB for the requested page table (CIK).
+ */
+-static void gmc_v7_0_gart_flush_gpu_tlb(struct amdgpu_device *adev,
+- uint32_t vmid)
++static void gmc_v7_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid)
+ {
+ /* bits 0-15 are the VM contexts0-15 */
+ WREG32(mmVM_INVALIDATE_REQUEST, 1 << vmid);
+ }
+
+ /**
+- * gmc_v7_0_gart_set_pte_pde - update the page tables using MMIO
++ * gmc_v7_0_set_pte_pde - update the page tables using MMIO
+ *
+ * @adev: amdgpu_device pointer
+ * @cpu_pt_addr: cpu address of the page table
+@@ -449,11 +448,9 @@ static void gmc_v7_0_gart_flush_gpu_tlb(struct amdgpu_device *adev,
+ *
+ * Update the page tables using the CPU.
+ */
+-static int gmc_v7_0_gart_set_pte_pde(struct amdgpu_device *adev,
+- void *cpu_pt_addr,
+- uint32_t gpu_page_idx,
+- uint64_t addr,
+- uint64_t flags)
++static int gmc_v7_0_set_pte_pde(struct amdgpu_device *adev, void *cpu_pt_addr,
++ uint32_t gpu_page_idx, uint64_t addr,
++ uint64_t flags)
+ {
+ void __iomem *ptr = (void *)cpu_pt_addr;
+ uint64_t value;
+@@ -523,9 +520,9 @@ static void gmc_v7_0_set_prt(struct amdgpu_device *adev, bool enable)
+ {
+ uint32_t tmp;
+
+- if (enable && !adev->mc.prt_warning) {
++ if (enable && !adev->gmc.prt_warning) {
+ dev_warn(adev->dev, "Disabling VM faults because of PRT request!\n");
+- adev->mc.prt_warning = true;
++ adev->gmc.prt_warning = true;
+ }
+
+ tmp = RREG32(mmVM_PRT_CNTL);
+@@ -621,8 +618,8 @@ static int gmc_v7_0_gart_enable(struct amdgpu_device *adev)
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, L2_CACHE_BIGK_FRAGMENT_SIZE, field);
+ WREG32(mmVM_L2_CNTL3, tmp);
+ /* setup context0 */
+- WREG32(mmVM_CONTEXT0_PAGE_TABLE_START_ADDR, adev->mc.gart_start >> 12);
+- WREG32(mmVM_CONTEXT0_PAGE_TABLE_END_ADDR, adev->mc.gart_end >> 12);
++ WREG32(mmVM_CONTEXT0_PAGE_TABLE_START_ADDR, adev->gmc.gart_start >> 12);
++ WREG32(mmVM_CONTEXT0_PAGE_TABLE_END_ADDR, adev->gmc.gart_end >> 12);
+ WREG32(mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR, adev->gart.table_addr >> 12);
+ WREG32(mmVM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR,
+ (u32)(adev->dummy_page.addr >> 12));
+@@ -674,9 +671,9 @@ static int gmc_v7_0_gart_enable(struct amdgpu_device *adev)
+ WREG32(mmCHUB_CONTROL, tmp);
+ }
+
+- gmc_v7_0_gart_flush_gpu_tlb(adev, 0);
++ gmc_v7_0_flush_gpu_tlb(adev, 0);
+ DRM_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n",
+- (unsigned)(adev->mc.gart_size >> 20),
++ (unsigned)(adev->gmc.gart_size >> 20),
+ (unsigned long long)adev->gart.table_addr);
+ adev->gart.ready = true;
+ return 0;
+@@ -923,16 +920,16 @@ static int gmc_v7_0_early_init(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+- gmc_v7_0_set_gart_funcs(adev);
++ gmc_v7_0_set_gmc_funcs(adev);
+ gmc_v7_0_set_irq_funcs(adev);
+
+- adev->mc.shared_aperture_start = 0x2000000000000000ULL;
+- adev->mc.shared_aperture_end =
+- adev->mc.shared_aperture_start + (4ULL << 30) - 1;
+- adev->mc.private_aperture_start =
+- adev->mc.shared_aperture_end + 1;
+- adev->mc.private_aperture_end =
+- adev->mc.private_aperture_start + (4ULL << 30) - 1;
++ adev->gmc.shared_aperture_start = 0x2000000000000000ULL;
++ adev->gmc.shared_aperture_end =
++ adev->gmc.shared_aperture_start + (4ULL << 30) - 1;
++ adev->gmc.private_aperture_start =
++ adev->gmc.shared_aperture_end + 1;
++ adev->gmc.private_aperture_end =
++ adev->gmc.private_aperture_start + (4ULL << 30) - 1;
+
+ return 0;
+ }
+@@ -942,7 +939,7 @@ static int gmc_v7_0_late_init(void *handle)
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+ if (amdgpu_vm_fault_stop != AMDGPU_VM_FAULT_STOP_ALWAYS)
+- return amdgpu_irq_get(adev, &adev->mc.vm_fault, 0);
++ return amdgpu_irq_get(adev, &adev->gmc.vm_fault, 0);
+ else
+ return 0;
+ }
+@@ -954,18 +951,18 @@ static int gmc_v7_0_sw_init(void *handle)
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+ if (adev->flags & AMD_IS_APU) {
+- adev->mc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN;
++ adev->gmc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN;
+ } else {
+ u32 tmp = RREG32(mmMC_SEQ_MISC0);
+ tmp &= MC_SEQ_MISC0__MT__MASK;
+- adev->mc.vram_type = gmc_v7_0_convert_vram_type(tmp);
++ adev->gmc.vram_type = gmc_v7_0_convert_vram_type(tmp);
+ }
+
+- r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 146, &adev->mc.vm_fault);
++ r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 146, &adev->gmc.vm_fault);
+ if (r)
+ return r;
+
+- r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 147, &adev->mc.vm_fault);
++ r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 147, &adev->gmc.vm_fault);
+ if (r)
+ return r;
+
+@@ -979,9 +976,9 @@ static int gmc_v7_0_sw_init(void *handle)
+ * This is the max address of the GPU's
+ * internal address space.
+ */
+- adev->mc.mc_mask = 0xffffffffffULL; /* 40 bit MC */
++ adev->gmc.mc_mask = 0xffffffffffULL; /* 40 bit MC */
+
+- adev->mc.stolen_size = 256 * 1024;
++ adev->gmc.stolen_size = 256 * 1024;
+
+ /* set DMA mask + need_dma32 flags.
+ * PCIE - can handle 40-bits.
+@@ -1058,8 +1055,8 @@ static int gmc_v7_0_sw_fini(void *handle)
+ amdgpu_vm_manager_fini(adev);
+ gmc_v7_0_gart_fini(adev);
+ amdgpu_bo_fini(adev);
+- release_firmware(adev->mc.fw);
+- adev->mc.fw = NULL;
++ release_firmware(adev->gmc.fw);
++ adev->gmc.fw = NULL;
+
+ return 0;
+ }
+@@ -1092,7 +1089,7 @@ static int gmc_v7_0_hw_fini(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+- amdgpu_irq_put(adev, &adev->mc.vm_fault, 0);
++ amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
+ gmc_v7_0_gart_disable(adev);
+
+ return 0;
+@@ -1339,9 +1336,9 @@ static const struct amd_ip_funcs gmc_v7_0_ip_funcs = {
+ .set_powergating_state = gmc_v7_0_set_powergating_state,
+ };
+
+-static const struct amdgpu_gart_funcs gmc_v7_0_gart_funcs = {
+- .flush_gpu_tlb = gmc_v7_0_gart_flush_gpu_tlb,
+- .set_pte_pde = gmc_v7_0_gart_set_pte_pde,
++static const struct amdgpu_gmc_funcs gmc_v7_0_gmc_funcs = {
++ .flush_gpu_tlb = gmc_v7_0_flush_gpu_tlb,
++ .set_pte_pde = gmc_v7_0_set_pte_pde,
+ .set_prt = gmc_v7_0_set_prt,
+ .get_vm_pte_flags = gmc_v7_0_get_vm_pte_flags,
+ .get_vm_pde = gmc_v7_0_get_vm_pde
+@@ -1352,16 +1349,16 @@ static const struct amdgpu_irq_src_funcs gmc_v7_0_irq_funcs = {
+ .process = gmc_v7_0_process_interrupt,
+ };
+
+-static void gmc_v7_0_set_gart_funcs(struct amdgpu_device *adev)
++static void gmc_v7_0_set_gmc_funcs(struct amdgpu_device *adev)
+ {
+- if (adev->gart.gart_funcs == NULL)
+- adev->gart.gart_funcs = &gmc_v7_0_gart_funcs;
++ if (adev->gmc.gmc_funcs == NULL)
++ adev->gmc.gmc_funcs = &gmc_v7_0_gmc_funcs;
+ }
+
+ static void gmc_v7_0_set_irq_funcs(struct amdgpu_device *adev)
+ {
+- adev->mc.vm_fault.num_types = 1;
+- adev->mc.vm_fault.funcs = &gmc_v7_0_irq_funcs;
++ adev->gmc.vm_fault.num_types = 1;
++ adev->gmc.vm_fault.funcs = &gmc_v7_0_irq_funcs;
+ }
+
+ const struct amdgpu_ip_block_version gmc_v7_0_ip_block =
+diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+index 87d127c..623d5f9 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+@@ -45,7 +45,7 @@
+ #include "amdgpu_atombios.h"
+
+
+-static void gmc_v8_0_set_gart_funcs(struct amdgpu_device *adev);
++static void gmc_v8_0_set_gmc_funcs(struct amdgpu_device *adev);
+ static void gmc_v8_0_set_irq_funcs(struct amdgpu_device *adev);
+ static int gmc_v8_0_wait_for_idle(void *handle);
+
+@@ -236,16 +236,16 @@ static int gmc_v8_0_init_microcode(struct amdgpu_device *adev)
+ }
+
+ snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mc.bin", chip_name);
+- err = request_firmware(&adev->mc.fw, fw_name, adev->dev);
++ err = request_firmware(&adev->gmc.fw, fw_name, adev->dev);
+ if (err)
+ goto out;
+- err = amdgpu_ucode_validate(adev->mc.fw);
++ err = amdgpu_ucode_validate(adev->gmc.fw);
+
+ out:
+ if (err) {
+ pr_err("mc: Failed to load firmware \"%s\"\n", fw_name);
+- release_firmware(adev->mc.fw);
+- adev->mc.fw = NULL;
++ release_firmware(adev->gmc.fw);
++ adev->gmc.fw = NULL;
+ }
+ return err;
+ }
+@@ -274,19 +274,19 @@ static int gmc_v8_0_tonga_mc_load_microcode(struct amdgpu_device *adev)
+ if (amdgpu_sriov_bios(adev))
+ return 0;
+
+- if (!adev->mc.fw)
++ if (!adev->gmc.fw)
+ return -EINVAL;
+
+- hdr = (const struct mc_firmware_header_v1_0 *)adev->mc.fw->data;
++ hdr = (const struct mc_firmware_header_v1_0 *)adev->gmc.fw->data;
+ amdgpu_ucode_print_mc_hdr(&hdr->header);
+
+- adev->mc.fw_version = le32_to_cpu(hdr->header.ucode_version);
++ adev->gmc.fw_version = le32_to_cpu(hdr->header.ucode_version);
+ regs_size = le32_to_cpu(hdr->io_debug_size_bytes) / (4 * 2);
+ io_mc_regs = (const __le32 *)
+- (adev->mc.fw->data + le32_to_cpu(hdr->io_debug_array_offset_bytes));
++ (adev->gmc.fw->data + le32_to_cpu(hdr->io_debug_array_offset_bytes));
+ ucode_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4;
+ fw_data = (const __le32 *)
+- (adev->mc.fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
++ (adev->gmc.fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+
+ running = REG_GET_FIELD(RREG32(mmMC_SEQ_SUP_CNTL), MC_SEQ_SUP_CNTL, RUN);
+
+@@ -350,19 +350,19 @@ static int gmc_v8_0_polaris_mc_load_microcode(struct amdgpu_device *adev)
+ if (vbios_version == 0)
+ return 0;
+
+- if (!adev->mc.fw)
++ if (!adev->gmc.fw)
+ return -EINVAL;
+
+- hdr = (const struct mc_firmware_header_v1_0 *)adev->mc.fw->data;
++ hdr = (const struct mc_firmware_header_v1_0 *)adev->gmc.fw->data;
+ amdgpu_ucode_print_mc_hdr(&hdr->header);
+
+- adev->mc.fw_version = le32_to_cpu(hdr->header.ucode_version);
++ adev->gmc.fw_version = le32_to_cpu(hdr->header.ucode_version);
+ regs_size = le32_to_cpu(hdr->io_debug_size_bytes) / (4 * 2);
+ io_mc_regs = (const __le32 *)
+- (adev->mc.fw->data + le32_to_cpu(hdr->io_debug_array_offset_bytes));
++ (adev->gmc.fw->data + le32_to_cpu(hdr->io_debug_array_offset_bytes));
+ ucode_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4;
+ fw_data = (const __le32 *)
+- (adev->mc.fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
++ (adev->gmc.fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
+
+ data = RREG32(mmMC_SEQ_MISC0);
+ data &= ~(0x40);
+@@ -398,7 +398,7 @@ static int gmc_v8_0_polaris_mc_load_microcode(struct amdgpu_device *adev)
+ }
+
+ static void gmc_v8_0_vram_gtt_location(struct amdgpu_device *adev,
+- struct amdgpu_mc *mc)
++ struct amdgpu_gmc *mc)
+ {
+ u64 base = 0;
+
+@@ -406,7 +406,7 @@ static void gmc_v8_0_vram_gtt_location(struct amdgpu_device *adev,
+ base = RREG32(mmMC_VM_FB_LOCATION) & 0xFFFF;
+ base <<= 24;
+
+- amdgpu_device_vram_location(adev, &adev->mc, base);
++ amdgpu_device_vram_location(adev, &adev->gmc, base);
+ amdgpu_device_gart_location(adev, mc);
+ }
+
+@@ -449,18 +449,18 @@ static void gmc_v8_0_mc_program(struct amdgpu_device *adev)
+ }
+ /* Update configuration */
+ WREG32(mmMC_VM_SYSTEM_APERTURE_LOW_ADDR,
+- adev->mc.vram_start >> 12);
++ adev->gmc.vram_start >> 12);
+ WREG32(mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR,
+- adev->mc.vram_end >> 12);
++ adev->gmc.vram_end >> 12);
+ WREG32(mmMC_VM_SYSTEM_APERTURE_DEFAULT_ADDR,
+ adev->vram_scratch.gpu_addr >> 12);
+
+ if (amdgpu_sriov_vf(adev)) {
+- tmp = ((adev->mc.vram_end >> 24) & 0xFFFF) << 16;
+- tmp |= ((adev->mc.vram_start >> 24) & 0xFFFF);
++ tmp = ((adev->gmc.vram_end >> 24) & 0xFFFF) << 16;
++ tmp |= ((adev->gmc.vram_start >> 24) & 0xFFFF);
+ WREG32(mmMC_VM_FB_LOCATION, tmp);
+ /* XXX double check these! */
+- WREG32(mmHDP_NONSURFACE_BASE, (adev->mc.vram_start >> 8));
++ WREG32(mmHDP_NONSURFACE_BASE, (adev->gmc.vram_start >> 8));
+ WREG32(mmHDP_NONSURFACE_INFO, (2 << 7) | (1 << 30));
+ WREG32(mmHDP_NONSURFACE_SIZE, 0x3FFFFFFF);
+ }
+@@ -495,8 +495,8 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
+ {
+ int r;
+
+- adev->mc.vram_width = amdgpu_atombios_get_vram_width(adev);
+- if (!adev->mc.vram_width) {
++ adev->gmc.vram_width = amdgpu_atombios_get_vram_width(adev);
++ if (!adev->gmc.vram_width) {
+ u32 tmp;
+ int chansize, numchan;
+
+@@ -538,15 +538,15 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
+ numchan = 16;
+ break;
+ }
+- adev->mc.vram_width = numchan * chansize;
++ adev->gmc.vram_width = numchan * chansize;
+ /* FIXME: The above calculation is outdated.
+ * For HBM provide a temporary fix */
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_HBM)
+- adev->mc.vram_width = AMDGPU_VRAM_TYPE_HBM_WIDTH;
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_HBM)
++ adev->gmc.vram_width = AMDGPU_VRAM_TYPE_HBM_WIDTH;
+ }
+ /* size in MB on si */
+- adev->mc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+- adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
++ adev->gmc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
++ adev->gmc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+
+ #if !defined(BUILD_AS_DKMS) || LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
+ if (!(adev->flags & AMD_IS_APU)) {
+@@ -555,20 +555,20 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
+ return r;
+ }
+ #endif
+- adev->mc.aper_base = pci_resource_start(adev->pdev, 0);
+- adev->mc.aper_size = pci_resource_len(adev->pdev, 0);
++ adev->gmc.aper_base = pci_resource_start(adev->pdev, 0);
++ adev->gmc.aper_size = pci_resource_len(adev->pdev, 0);
+
+ #ifdef CONFIG_X86_64
+ if (adev->flags & AMD_IS_APU) {
+- adev->mc.aper_base = ((u64)RREG32(mmMC_VM_FB_OFFSET)) << 22;
+- adev->mc.aper_size = adev->mc.real_vram_size;
++ adev->gmc.aper_base = ((u64)RREG32(mmMC_VM_FB_OFFSET)) << 22;
++ adev->gmc.aper_size = adev->gmc.real_vram_size;
+ }
+ #endif
+
+ /* In case the PCI BAR is larger than the actual amount of vram */
+- adev->mc.visible_vram_size = adev->mc.aper_size;
+- if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
+- adev->mc.visible_vram_size = adev->mc.real_vram_size;
++ adev->gmc.visible_vram_size = adev->gmc.aper_size;
++ if (adev->gmc.visible_vram_size > adev->gmc.real_vram_size)
++ adev->gmc.visible_vram_size = adev->gmc.real_vram_size;
+
+ /* set the gart size */
+ if (amdgpu_gart_size == -1) {
+@@ -577,20 +577,20 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
+ case CHIP_POLARIS10: /* all engines support GPUVM */
+ case CHIP_POLARIS12: /* all engines support GPUVM */
+ default:
+- adev->mc.gart_size = 256ULL << 20;
++ adev->gmc.gart_size = 256ULL << 20;
+ break;
+ case CHIP_TONGA: /* UVD, VCE do not support GPUVM */
+ case CHIP_FIJI: /* UVD, VCE do not support GPUVM */
+ case CHIP_CARRIZO: /* UVD, VCE do not support GPUVM, DCE SG support */
+ case CHIP_STONEY: /* UVD does not support GPUVM, DCE SG support */
+- adev->mc.gart_size = 1024ULL << 20;
++ adev->gmc.gart_size = 1024ULL << 20;
+ break;
+ }
+ } else {
+- adev->mc.gart_size = (u64)amdgpu_gart_size << 20;
++ adev->gmc.gart_size = (u64)amdgpu_gart_size << 20;
+ }
+
+- gmc_v8_0_vram_gtt_location(adev, &adev->mc);
++ gmc_v8_0_vram_gtt_location(adev, &adev->gmc);
+
+ return 0;
+ }
+@@ -603,14 +603,14 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
+ */
+
+ /**
+- * gmc_v8_0_gart_flush_gpu_tlb - gart tlb flush callback
++ * gmc_v8_0_flush_gpu_tlb - gart tlb flush callback
+ *
+ * @adev: amdgpu_device pointer
+ * @vmid: vm instance to flush
+ *
+ * Flush the TLB for the requested page table (CIK).
+ */
+-static void gmc_v8_0_gart_flush_gpu_tlb(struct amdgpu_device *adev,
++static void gmc_v8_0_flush_gpu_tlb(struct amdgpu_device *adev,
+ uint32_t vmid)
+ {
+ /* bits 0-15 are the VM contexts0-15 */
+@@ -618,7 +618,7 @@ static void gmc_v8_0_gart_flush_gpu_tlb(struct amdgpu_device *adev,
+ }
+
+ /**
+- * gmc_v8_0_gart_set_pte_pde - update the page tables using MMIO
++ * gmc_v8_0_set_pte_pde - update the page tables using MMIO
+ *
+ * @adev: amdgpu_device pointer
+ * @cpu_pt_addr: cpu address of the page table
+@@ -628,11 +628,9 @@ static void gmc_v8_0_gart_flush_gpu_tlb(struct amdgpu_device *adev,
+ *
+ * Update the page tables using the CPU.
+ */
+-static int gmc_v8_0_gart_set_pte_pde(struct amdgpu_device *adev,
+- void *cpu_pt_addr,
+- uint32_t gpu_page_idx,
+- uint64_t addr,
+- uint64_t flags)
++static int gmc_v8_0_set_pte_pde(struct amdgpu_device *adev, void *cpu_pt_addr,
++ uint32_t gpu_page_idx, uint64_t addr,
++ uint64_t flags)
+ {
+ void __iomem *ptr = (void *)cpu_pt_addr;
+ uint64_t value;
+@@ -726,9 +724,9 @@ static void gmc_v8_0_set_prt(struct amdgpu_device *adev, bool enable)
+ {
+ u32 tmp;
+
+- if (enable && !adev->mc.prt_warning) {
++ if (enable && !adev->gmc.prt_warning) {
+ dev_warn(adev->dev, "Disabling VM faults because of PRT request!\n");
+- adev->mc.prt_warning = true;
++ adev->gmc.prt_warning = true;
+ }
+
+ tmp = RREG32(mmVM_PRT_CNTL);
+@@ -840,8 +838,8 @@ static int gmc_v8_0_gart_enable(struct amdgpu_device *adev)
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL4, VMC_TAP_CONTEXT1_PTE_REQUEST_SNOOP, 0);
+ WREG32(mmVM_L2_CNTL4, tmp);
+ /* setup context0 */
+- WREG32(mmVM_CONTEXT0_PAGE_TABLE_START_ADDR, adev->mc.gart_start >> 12);
+- WREG32(mmVM_CONTEXT0_PAGE_TABLE_END_ADDR, adev->mc.gart_end >> 12);
++ WREG32(mmVM_CONTEXT0_PAGE_TABLE_START_ADDR, adev->gmc.gart_start >> 12);
++ WREG32(mmVM_CONTEXT0_PAGE_TABLE_END_ADDR, adev->gmc.gart_end >> 12);
+ WREG32(mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR, adev->gart.table_addr >> 12);
+ WREG32(mmVM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR,
+ (u32)(adev->dummy_page.addr >> 12));
+@@ -894,9 +892,9 @@ static int gmc_v8_0_gart_enable(struct amdgpu_device *adev)
+ else
+ gmc_v8_0_set_fault_enable_default(adev, true);
+
+- gmc_v8_0_gart_flush_gpu_tlb(adev, 0);
++ gmc_v8_0_flush_gpu_tlb(adev, 0);
+ DRM_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n",
+- (unsigned)(adev->mc.gart_size >> 20),
++ (unsigned)(adev->gmc.gart_size >> 20),
+ (unsigned long long)adev->gart.table_addr);
+ adev->gart.ready = true;
+ return 0;
+@@ -1017,16 +1015,16 @@ static int gmc_v8_0_early_init(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+- gmc_v8_0_set_gart_funcs(adev);
++ gmc_v8_0_set_gmc_funcs(adev);
+ gmc_v8_0_set_irq_funcs(adev);
+
+- adev->mc.shared_aperture_start = 0x2000000000000000ULL;
+- adev->mc.shared_aperture_end =
+- adev->mc.shared_aperture_start + (4ULL << 30) - 1;
+- adev->mc.private_aperture_start =
+- adev->mc.shared_aperture_end + 1;
+- adev->mc.private_aperture_end =
+- adev->mc.private_aperture_start + (4ULL << 30) - 1;
++ adev->gmc.shared_aperture_start = 0x2000000000000000ULL;
++ adev->gmc.shared_aperture_end =
++ adev->gmc.shared_aperture_start + (4ULL << 30) - 1;
++ adev->gmc.private_aperture_start =
++ adev->gmc.shared_aperture_end + 1;
++ adev->gmc.private_aperture_end =
++ adev->gmc.private_aperture_start + (4ULL << 30) - 1;
+
+ return 0;
+ }
+@@ -1036,7 +1034,7 @@ static int gmc_v8_0_late_init(void *handle)
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+ if (amdgpu_vm_fault_stop != AMDGPU_VM_FAULT_STOP_ALWAYS)
+- return amdgpu_irq_get(adev, &adev->mc.vm_fault, 0);
++ return amdgpu_irq_get(adev, &adev->gmc.vm_fault, 0);
+ else
+ return 0;
+ }
+@@ -1050,7 +1048,7 @@ static int gmc_v8_0_sw_init(void *handle)
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+ if (adev->flags & AMD_IS_APU) {
+- adev->mc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN;
++ adev->gmc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN;
+ } else {
+ u32 tmp;
+
+@@ -1059,14 +1057,14 @@ static int gmc_v8_0_sw_init(void *handle)
+ else
+ tmp = RREG32(mmMC_SEQ_MISC0);
+ tmp &= MC_SEQ_MISC0__MT__MASK;
+- adev->mc.vram_type = gmc_v8_0_convert_vram_type(tmp);
++ adev->gmc.vram_type = gmc_v8_0_convert_vram_type(tmp);
+ }
+
+- r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 146, &adev->mc.vm_fault);
++ r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 146, &adev->gmc.vm_fault);
+ if (r)
+ return r;
+
+- r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 147, &adev->mc.vm_fault);
++ r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 147, &adev->gmc.vm_fault);
+ if (r)
+ return r;
+
+@@ -1080,9 +1078,9 @@ static int gmc_v8_0_sw_init(void *handle)
+ * This is the max address of the GPU's
+ * internal address space.
+ */
+- adev->mc.mc_mask = 0xffffffffffULL; /* 40 bit MC */
++ adev->gmc.mc_mask = 0xffffffffffULL; /* 40 bit MC */
+
+- adev->mc.stolen_size = 256 * 1024;
++ adev->gmc.stolen_size = 256 * 1024;
+
+ /* set DMA mask + need_dma32 flags.
+ * PCIE - can handle 40-bits.
+@@ -1159,8 +1157,8 @@ static int gmc_v8_0_sw_fini(void *handle)
+ amdgpu_vm_manager_fini(adev);
+ gmc_v8_0_gart_fini(adev);
+ amdgpu_bo_fini(adev);
+- release_firmware(adev->mc.fw);
+- adev->mc.fw = NULL;
++ release_firmware(adev->gmc.fw);
++ adev->gmc.fw = NULL;
+
+ return 0;
+ }
+@@ -1201,7 +1199,7 @@ static int gmc_v8_0_hw_fini(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+- amdgpu_irq_put(adev, &adev->mc.vm_fault, 0);
++ amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
+ gmc_v8_0_gart_disable(adev);
+
+ return 0;
+@@ -1281,10 +1279,10 @@ static bool gmc_v8_0_check_soft_reset(void *handle)
+ SRBM_SOFT_RESET, SOFT_RESET_MC, 1);
+ }
+ if (srbm_soft_reset) {
+- adev->mc.srbm_soft_reset = srbm_soft_reset;
++ adev->gmc.srbm_soft_reset = srbm_soft_reset;
+ return true;
+ } else {
+- adev->mc.srbm_soft_reset = 0;
++ adev->gmc.srbm_soft_reset = 0;
+ return false;
+ }
+ }
+@@ -1293,7 +1291,7 @@ static int gmc_v8_0_pre_soft_reset(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+- if (!adev->mc.srbm_soft_reset)
++ if (!adev->gmc.srbm_soft_reset)
+ return 0;
+
+ gmc_v8_0_mc_stop(adev);
+@@ -1309,9 +1307,9 @@ static int gmc_v8_0_soft_reset(void *handle)
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+ u32 srbm_soft_reset;
+
+- if (!adev->mc.srbm_soft_reset)
++ if (!adev->gmc.srbm_soft_reset)
+ return 0;
+- srbm_soft_reset = adev->mc.srbm_soft_reset;
++ srbm_soft_reset = adev->gmc.srbm_soft_reset;
+
+ if (srbm_soft_reset) {
+ u32 tmp;
+@@ -1339,7 +1337,7 @@ static int gmc_v8_0_post_soft_reset(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+- if (!adev->mc.srbm_soft_reset)
++ if (!adev->gmc.srbm_soft_reset)
+ return 0;
+
+ gmc_v8_0_mc_resume(adev);
+@@ -1676,9 +1674,9 @@ static const struct amd_ip_funcs gmc_v8_0_ip_funcs = {
+ .get_clockgating_state = gmc_v8_0_get_clockgating_state,
+ };
+
+-static const struct amdgpu_gart_funcs gmc_v8_0_gart_funcs = {
+- .flush_gpu_tlb = gmc_v8_0_gart_flush_gpu_tlb,
+- .set_pte_pde = gmc_v8_0_gart_set_pte_pde,
++static const struct amdgpu_gmc_funcs gmc_v8_0_gmc_funcs = {
++ .flush_gpu_tlb = gmc_v8_0_flush_gpu_tlb,
++ .set_pte_pde = gmc_v8_0_set_pte_pde,
+ .set_prt = gmc_v8_0_set_prt,
+ .get_vm_pte_flags = gmc_v8_0_get_vm_pte_flags,
+ .get_vm_pde = gmc_v8_0_get_vm_pde
+@@ -1689,16 +1687,16 @@ static const struct amdgpu_irq_src_funcs gmc_v8_0_irq_funcs = {
+ .process = gmc_v8_0_process_interrupt,
+ };
+
+-static void gmc_v8_0_set_gart_funcs(struct amdgpu_device *adev)
++static void gmc_v8_0_set_gmc_funcs(struct amdgpu_device *adev)
+ {
+- if (adev->gart.gart_funcs == NULL)
+- adev->gart.gart_funcs = &gmc_v8_0_gart_funcs;
++ if (adev->gmc.gmc_funcs == NULL)
++ adev->gmc.gmc_funcs = &gmc_v8_0_gmc_funcs;
+ }
+
+ static void gmc_v8_0_set_irq_funcs(struct amdgpu_device *adev)
+ {
+- adev->mc.vm_fault.num_types = 1;
+- adev->mc.vm_fault.funcs = &gmc_v8_0_irq_funcs;
++ adev->gmc.vm_fault.num_types = 1;
++ adev->gmc.vm_fault.funcs = &gmc_v8_0_irq_funcs;
+ }
+
+ const struct amdgpu_ip_block_version gmc_v8_0_ip_block =
+diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+index 0bb4ef9..0169aad 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+@@ -284,8 +284,8 @@ static const struct amdgpu_irq_src_funcs gmc_v9_0_irq_funcs = {
+
+ static void gmc_v9_0_set_irq_funcs(struct amdgpu_device *adev)
+ {
+- adev->mc.vm_fault.num_types = 1;
+- adev->mc.vm_fault.funcs = &gmc_v9_0_irq_funcs;
++ adev->gmc.vm_fault.num_types = 1;
++ adev->gmc.vm_fault.funcs = &gmc_v9_0_irq_funcs;
+ }
+
+ static uint32_t gmc_v9_0_get_invalidate_req(unsigned int vmid)
+@@ -315,21 +315,21 @@ static uint32_t gmc_v9_0_get_invalidate_req(unsigned int vmid)
+ */
+
+ /**
+- * gmc_v9_0_gart_flush_gpu_tlb - gart tlb flush callback
++ * gmc_v9_0_flush_gpu_tlb - gart tlb flush callback
+ *
+ * @adev: amdgpu_device pointer
+ * @vmid: vm instance to flush
+ *
+ * Flush the TLB for the requested page table.
+ */
+-static void gmc_v9_0_gart_flush_gpu_tlb(struct amdgpu_device *adev,
++static void gmc_v9_0_flush_gpu_tlb(struct amdgpu_device *adev,
+ uint32_t vmid)
+ {
+ /* Use register 17 for GART */
+ const unsigned eng = 17;
+ unsigned i, j;
+
+- spin_lock(&adev->mc.invalidate_lock);
++ spin_lock(&adev->gmc.invalidate_lock);
+
+ for (i = 0; i < AMDGPU_MAX_VMHUBS; ++i) {
+ struct amdgpu_vmhub *hub = &adev->vmhub[i];
+@@ -362,11 +362,11 @@ static void gmc_v9_0_gart_flush_gpu_tlb(struct amdgpu_device *adev,
+ DRM_ERROR("Timeout waiting for VM flush ACK!\n");
+ }
+
+- spin_unlock(&adev->mc.invalidate_lock);
++ spin_unlock(&adev->gmc.invalidate_lock);
+ }
+
+ /**
+- * gmc_v9_0_gart_set_pte_pde - update the page tables using MMIO
++ * gmc_v9_0_set_pte_pde - update the page tables using MMIO
+ *
+ * @adev: amdgpu_device pointer
+ * @cpu_pt_addr: cpu address of the page table
+@@ -376,11 +376,9 @@ static void gmc_v9_0_gart_flush_gpu_tlb(struct amdgpu_device *adev,
+ *
+ * Update the page tables using the CPU.
+ */
+-static int gmc_v9_0_gart_set_pte_pde(struct amdgpu_device *adev,
+- void *cpu_pt_addr,
+- uint32_t gpu_page_idx,
+- uint64_t addr,
+- uint64_t flags)
++static int gmc_v9_0_set_pte_pde(struct amdgpu_device *adev, void *cpu_pt_addr,
++ uint32_t gpu_page_idx, uint64_t addr,
++ uint64_t flags)
+ {
+ void __iomem *ptr = (void *)cpu_pt_addr;
+ uint64_t value;
+@@ -471,10 +469,10 @@ static void gmc_v9_0_get_vm_pde(struct amdgpu_device *adev, int level,
+ {
+ if (!(*flags & AMDGPU_PDE_PTE))
+ *addr = adev->vm_manager.vram_base_offset + *addr -
+- adev->mc.vram_start;
++ adev->gmc.vram_start;
+ BUG_ON(*addr & 0xFFFF00000000003FULL);
+
+- if (!adev->mc.translate_further)
++ if (!adev->gmc.translate_further)
+ return;
+
+ if (level == AMDGPU_VM_PDB1) {
+@@ -490,34 +488,34 @@ static void gmc_v9_0_get_vm_pde(struct amdgpu_device *adev, int level,
+ }
+ }
+
+-static const struct amdgpu_gart_funcs gmc_v9_0_gart_funcs = {
+- .flush_gpu_tlb = gmc_v9_0_gart_flush_gpu_tlb,
+- .set_pte_pde = gmc_v9_0_gart_set_pte_pde,
++static const struct amdgpu_gmc_funcs gmc_v9_0_gmc_funcs = {
++ .flush_gpu_tlb = gmc_v9_0_flush_gpu_tlb,
++ .set_pte_pde = gmc_v9_0_set_pte_pde,
+ .get_invalidate_req = gmc_v9_0_get_invalidate_req,
+ .get_vm_pte_flags = gmc_v9_0_get_vm_pte_flags,
+ .get_vm_pde = gmc_v9_0_get_vm_pde
+ };
+
+-static void gmc_v9_0_set_gart_funcs(struct amdgpu_device *adev)
++static void gmc_v9_0_set_gmc_funcs(struct amdgpu_device *adev)
+ {
+- if (adev->gart.gart_funcs == NULL)
+- adev->gart.gart_funcs = &gmc_v9_0_gart_funcs;
++ if (adev->gmc.gmc_funcs == NULL)
++ adev->gmc.gmc_funcs = &gmc_v9_0_gmc_funcs;
+ }
+
+ static int gmc_v9_0_early_init(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
+- gmc_v9_0_set_gart_funcs(adev);
++ gmc_v9_0_set_gmc_funcs(adev);
+ gmc_v9_0_set_irq_funcs(adev);
+
+- adev->mc.shared_aperture_start = 0x2000000000000000ULL;
+- adev->mc.shared_aperture_end =
+- adev->mc.shared_aperture_start + (4ULL << 30) - 1;
+- adev->mc.private_aperture_start =
+- adev->mc.shared_aperture_end + 1;
+- adev->mc.private_aperture_end =
+- adev->mc.private_aperture_start + (4ULL << 30) - 1;
++ adev->gmc.shared_aperture_start = 0x2000000000000000ULL;
++ adev->gmc.shared_aperture_end =
++ adev->gmc.shared_aperture_start + (4ULL << 30) - 1;
++ adev->gmc.private_aperture_start =
++ adev->gmc.shared_aperture_end + 1;
++ adev->gmc.private_aperture_end =
++ adev->gmc.private_aperture_start + (4ULL << 30) - 1;
+
+ return 0;
+ }
+@@ -641,16 +639,16 @@ static int gmc_v9_0_late_init(void *handle)
+ return r;
+ }
+
+- return amdgpu_irq_get(adev, &adev->mc.vm_fault, 0);
++ return amdgpu_irq_get(adev, &adev->gmc.vm_fault, 0);
+ }
+
+ static void gmc_v9_0_vram_gtt_location(struct amdgpu_device *adev,
+- struct amdgpu_mc *mc)
++ struct amdgpu_gmc *mc)
+ {
+ u64 base = 0;
+ if (!amdgpu_sriov_vf(adev))
+ base = mmhub_v1_0_get_fb_location(adev);
+- amdgpu_device_vram_location(adev, &adev->mc, base);
++ amdgpu_device_vram_location(adev, &adev->gmc, base);
+ amdgpu_device_gart_location(adev, mc);
+ /* base offset of vram pages */
+ if (adev->flags & AMD_IS_APU)
+@@ -674,8 +672,8 @@ static int gmc_v9_0_mc_init(struct amdgpu_device *adev)
+ int chansize, numchan;
+ int r;
+
+- adev->mc.vram_width = amdgpu_atomfirmware_get_vram_width(adev);
+- if (!adev->mc.vram_width) {
++ adev->gmc.vram_width = amdgpu_atomfirmware_get_vram_width(adev);
++ if (!adev->gmc.vram_width) {
+ /* hbm memory channel size */
+ if (adev->flags & AMD_IS_APU)
+ chansize = 64;
+@@ -715,13 +713,13 @@ static int gmc_v9_0_mc_init(struct amdgpu_device *adev)
+ numchan = 2;
+ break;
+ }
+- adev->mc.vram_width = numchan * chansize;
++ adev->gmc.vram_width = numchan * chansize;
+ }
+
+ /* size in MB on si */
+- adev->mc.mc_vram_size =
++ adev->gmc.mc_vram_size =
+ adev->nbio_funcs->get_memsize(adev) * 1024ULL * 1024ULL;
+- adev->mc.real_vram_size = adev->mc.mc_vram_size;
++ adev->gmc.real_vram_size = adev->gmc.mc_vram_size;
+
+ #if !defined(BUILD_AS_DKMS) || LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
+ if (!(adev->flags & AMD_IS_APU)) {
+@@ -730,30 +728,30 @@ static int gmc_v9_0_mc_init(struct amdgpu_device *adev)
+ return r;
+ }
+ #endif
+- adev->mc.aper_base = pci_resource_start(adev->pdev, 0);
+- adev->mc.aper_size = pci_resource_len(adev->pdev, 0);
++ adev->gmc.aper_base = pci_resource_start(adev->pdev, 0);
++ adev->gmc.aper_size = pci_resource_len(adev->pdev, 0);
+
+ /* In case the PCI BAR is larger than the actual amount of vram */
+- adev->mc.visible_vram_size = adev->mc.aper_size;
+- if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
+- adev->mc.visible_vram_size = adev->mc.real_vram_size;
++ adev->gmc.visible_vram_size = adev->gmc.aper_size;
++ if (adev->gmc.visible_vram_size > adev->gmc.real_vram_size)
++ adev->gmc.visible_vram_size = adev->gmc.real_vram_size;
+
+ /* set the gart size */
+ if (amdgpu_gart_size == -1) {
+ switch (adev->asic_type) {
+ case CHIP_VEGA10: /* all engines support GPUVM */
+ default:
+- adev->mc.gart_size = 256ULL << 20;
++ adev->gmc.gart_size = 256ULL << 20;
+ break;
+ case CHIP_RAVEN: /* DCE SG support */
+- adev->mc.gart_size = 1024ULL << 20;
++ adev->gmc.gart_size = 1024ULL << 20;
+ break;
+ }
+ } else {
+- adev->mc.gart_size = (u64)amdgpu_gart_size << 20;
++ adev->gmc.gart_size = (u64)amdgpu_gart_size << 20;
+ }
+
+- gmc_v9_0_vram_gtt_location(adev, &adev->mc);
++ gmc_v9_0_vram_gtt_location(adev, &adev->gmc);
+
+ return 0;
+ }
+@@ -785,23 +783,23 @@ static int gmc_v9_0_sw_init(void *handle)
+ gfxhub_v1_0_init(adev);
+ mmhub_v1_0_init(adev);
+
+- spin_lock_init(&adev->mc.invalidate_lock);
++ spin_lock_init(&adev->gmc.invalidate_lock);
+
+ switch (adev->asic_type) {
+ case CHIP_RAVEN:
+- adev->mc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN;
++ adev->gmc.vram_type = AMDGPU_VRAM_TYPE_UNKNOWN;
+ if (adev->rev_id == 0x0 || adev->rev_id == 0x1) {
+ amdgpu_vm_adjust_size(adev, 256 * 1024, 9, 3, 48);
+ } else {
+ /* vm_size is 128TB + 512GB for legacy 3-level page support */
+ amdgpu_vm_adjust_size(adev, 128 * 1024 + 512, 9, 2, 48);
+- adev->mc.translate_further =
++ adev->gmc.translate_further =
+ adev->vm_manager.num_level > 1;
+ }
+ break;
+ case CHIP_VEGA10:
+ /* XXX Don't know how to get VRAM type yet. */
+- adev->mc.vram_type = AMDGPU_VRAM_TYPE_HBM;
++ adev->gmc.vram_type = AMDGPU_VRAM_TYPE_HBM;
+ /*
+ * To fulfill 4-level page support,
+ * vm size is 256TB (48bit), maximum size of Vega10,
+@@ -815,9 +813,9 @@ static int gmc_v9_0_sw_init(void *handle)
+
+ /* This interrupt is VMC page fault.*/
+ r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_VMC, 0,
+- &adev->mc.vm_fault);
++ &adev->gmc.vm_fault);
+ r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_UTCL2, 0,
+- &adev->mc.vm_fault);
++ &adev->gmc.vm_fault);
+
+ if (r)
+ return r;
+@@ -826,13 +824,13 @@ static int gmc_v9_0_sw_init(void *handle)
+ * This is the max address of the GPU's
+ * internal address space.
+ */
+- adev->mc.mc_mask = 0xffffffffffffULL; /* 48 bit MC */
++ adev->gmc.mc_mask = 0xffffffffffffULL; /* 48 bit MC */
+
+ /*
+ * It needs to reserve 8M stolen memory for vega10
+ * TODO: Figure out how to avoid that...
+ */
+- adev->mc.stolen_size = 8 * 1024 * 1024;
++ adev->gmc.stolen_size = 8 * 1024 * 1024;
+
+ /* set DMA mask + need_dma32 flags.
+ * PCIE - can handle 44-bits.
+@@ -982,10 +980,10 @@ static int gmc_v9_0_gart_enable(struct amdgpu_device *adev)
+
+ gfxhub_v1_0_set_fault_enable_default(adev, value);
+ mmhub_v1_0_set_fault_enable_default(adev, value);
+- gmc_v9_0_gart_flush_gpu_tlb(adev, 0);
++ gmc_v9_0_flush_gpu_tlb(adev, 0);
+
+ DRM_INFO("PCIE GART of %uM enabled (table at 0x%016llX).\n",
+- (unsigned)(adev->mc.gart_size >> 20),
++ (unsigned)(adev->gmc.gart_size >> 20),
+ (unsigned long long)adev->gart.table_addr);
+ adev->gart.ready = true;
+ return 0;
+@@ -1036,7 +1034,7 @@ static int gmc_v9_0_hw_fini(void *handle)
+ return 0;
+ }
+
+- amdgpu_irq_put(adev, &adev->mc.vm_fault, 0);
++ amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
+ gmc_v9_0_gart_disable(adev);
+
+ return 0;
+diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+index bdf94c6..82f8bc8 100644
+--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+@@ -50,7 +50,7 @@ static void mmhub_v1_0_init_gart_pt_regs(struct amdgpu_device *adev)
+ uint64_t value;
+
+ BUG_ON(adev->gart.table_addr & (~0x0000FFFFFFFFF000ULL));
+- value = adev->gart.table_addr - adev->mc.vram_start +
++ value = adev->gart.table_addr - adev->gmc.vram_start +
+ adev->vm_manager.vram_base_offset;
+ value &= 0x0000FFFFFFFFF000ULL;
+ value |= 0x1; /* valid bit */
+@@ -67,14 +67,14 @@ static void mmhub_v1_0_init_gart_aperture_regs(struct amdgpu_device *adev)
+ mmhub_v1_0_init_gart_pt_regs(adev);
+
+ WREG32_SOC15(MMHUB, 0, mmVM_CONTEXT0_PAGE_TABLE_START_ADDR_LO32,
+- (u32)(adev->mc.gart_start >> 12));
++ (u32)(adev->gmc.gart_start >> 12));
+ WREG32_SOC15(MMHUB, 0, mmVM_CONTEXT0_PAGE_TABLE_START_ADDR_HI32,
+- (u32)(adev->mc.gart_start >> 44));
++ (u32)(adev->gmc.gart_start >> 44));
+
+ WREG32_SOC15(MMHUB, 0, mmVM_CONTEXT0_PAGE_TABLE_END_ADDR_LO32,
+- (u32)(adev->mc.gart_end >> 12));
++ (u32)(adev->gmc.gart_end >> 12));
+ WREG32_SOC15(MMHUB, 0, mmVM_CONTEXT0_PAGE_TABLE_END_ADDR_HI32,
+- (u32)(adev->mc.gart_end >> 44));
++ (u32)(adev->gmc.gart_end >> 44));
+ }
+
+ static void mmhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev)
+@@ -89,12 +89,12 @@ static void mmhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev)
+
+ /* Program the system aperture low logical page number. */
+ WREG32_SOC15(MMHUB, 0, mmMC_VM_SYSTEM_APERTURE_LOW_ADDR,
+- adev->mc.vram_start >> 18);
++ adev->gmc.vram_start >> 18);
+ WREG32_SOC15(MMHUB, 0, mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR,
+- adev->mc.vram_end >> 18);
++ adev->gmc.vram_end >> 18);
+
+ /* Set default page address. */
+- value = adev->vram_scratch.gpu_addr - adev->mc.vram_start +
++ value = adev->vram_scratch.gpu_addr - adev->gmc.vram_start +
+ adev->vm_manager.vram_base_offset;
+ WREG32_SOC15(MMHUB, 0, mmMC_VM_SYSTEM_APERTURE_DEFAULT_ADDR_LSB,
+ (u32)(value >> 12));
+@@ -155,7 +155,7 @@ static void mmhub_v1_0_init_cache_regs(struct amdgpu_device *adev)
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_L2_CACHE, 1);
+ WREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL2, tmp);
+
+- if (adev->mc.translate_further) {
++ if (adev->gmc.translate_further) {
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, BANK_SELECT, 12);
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3,
+ L2_CACHE_BIGK_FRAGMENT_SIZE, 9);
+@@ -207,7 +207,7 @@ static void mmhub_v1_0_setup_vmid_config(struct amdgpu_device *adev)
+
+ num_level = adev->vm_manager.num_level;
+ block_size = adev->vm_manager.block_size;
+- if (adev->mc.translate_further)
++ if (adev->gmc.translate_further)
+ num_level -= 1;
+ else
+ block_size -= 9;
+@@ -499,9 +499,9 @@ int mmhub_v1_0_gart_enable(struct amdgpu_device *adev)
+ * SRIOV driver need to program them
+ */
+ WREG32_SOC15(MMHUB, 0, mmMC_VM_FB_LOCATION_BASE,
+- adev->mc.vram_start >> 24);
++ adev->gmc.vram_start >> 24);
+ WREG32_SOC15(MMHUB, 0, mmMC_VM_FB_LOCATION_TOP,
+- adev->mc.vram_end >> 24);
++ adev->gmc.vram_end >> 24);
+ }
+
+ /* GART Enable. */
+diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
+index bd844ed..484abb9 100644
+--- a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
++++ b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
+@@ -346,7 +346,7 @@ static void sdma_v2_4_gfx_stop(struct amdgpu_device *adev)
+
+ if ((adev->mman.buffer_funcs_ring == sdma0) ||
+ (adev->mman.buffer_funcs_ring == sdma1))
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.visible_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.visible_vram_size);
+
+ for (i = 0; i < adev->sdma.num_instances; i++) {
+ rb_cntl = RREG32(mmSDMA0_GFX_RB_CNTL + sdma_offsets[i]);
+@@ -491,7 +491,7 @@ static int sdma_v2_4_gfx_resume(struct amdgpu_device *adev)
+ }
+
+ if (adev->mman.buffer_funcs_ring == ring)
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.real_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.real_vram_size);
+ }
+
+ return 0;
+diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+index fa63c56..5dd13ea 100644
+--- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+@@ -518,7 +518,7 @@ static void sdma_v3_0_gfx_stop(struct amdgpu_device *adev)
+
+ if ((adev->mman.buffer_funcs_ring == sdma0) ||
+ (adev->mman.buffer_funcs_ring == sdma1))
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.visible_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.visible_vram_size);
+
+ for (i = 0; i < adev->sdma.num_instances; i++) {
+ rb_cntl = RREG32(mmSDMA0_GFX_RB_CNTL + sdma_offsets[i]);
+@@ -758,7 +758,7 @@ static int sdma_v3_0_gfx_resume(struct amdgpu_device *adev)
+ }
+
+ if (adev->mman.buffer_funcs_ring == ring)
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.real_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.real_vram_size);
+ }
+
+ return 0;
+diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
+index 3dc9e59..f9b4578 100644
+--- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
+@@ -440,7 +440,7 @@ static void sdma_v4_0_gfx_stop(struct amdgpu_device *adev)
+
+ if ((adev->mman.buffer_funcs_ring == sdma0) ||
+ (adev->mman.buffer_funcs_ring == sdma1))
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.visible_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.visible_vram_size);
+
+ for (i = 0; i < adev->sdma.num_instances; i++) {
+ rb_cntl = RREG32(sdma_v4_0_get_reg_offset(adev, i, mmSDMA0_GFX_RB_CNTL));
+@@ -682,7 +682,7 @@ static int sdma_v4_0_gfx_resume(struct amdgpu_device *adev)
+ }
+
+ if (adev->mman.buffer_funcs_ring == ring)
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.real_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.real_vram_size);
+
+ }
+
+@@ -1136,11 +1136,11 @@ static void sdma_v4_0_ring_emit_vm_flush(struct amdgpu_ring *ring,
+ unsigned vmid, uint64_t pd_addr)
+ {
+ struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub];
+- uint32_t req = ring->adev->gart.gart_funcs->get_invalidate_req(vmid);
++ uint32_t req = ring->adev->gmc.gmc_funcs->get_invalidate_req(vmid);
+ uint64_t flags = AMDGPU_PTE_VALID;
+ unsigned eng = ring->vm_inv_eng;
+
+- amdgpu_gart_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
++ amdgpu_gmc_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
+ pd_addr |= flags;
+
+ amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_SRBM_WRITE) |
+diff --git a/drivers/gpu/drm/amd/amdgpu/si_dma.c b/drivers/gpu/drm/amd/amdgpu/si_dma.c
+index 9a29c13..54e7a12 100644
+--- a/drivers/gpu/drm/amd/amdgpu/si_dma.c
++++ b/drivers/gpu/drm/amd/amdgpu/si_dma.c
+@@ -134,7 +134,7 @@ static void si_dma_stop(struct amdgpu_device *adev)
+ WREG32(DMA_RB_CNTL + sdma_offsets[i], rb_cntl);
+
+ if (adev->mman.buffer_funcs_ring == ring)
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.visible_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.visible_vram_size);
+ ring->ready = false;
+ }
+ }
+@@ -197,7 +197,7 @@ static int si_dma_start(struct amdgpu_device *adev)
+ }
+
+ if (adev->mman.buffer_funcs_ring == ring)
+- amdgpu_ttm_set_active_vram_size(adev, adev->mc.real_vram_size);
++ amdgpu_ttm_set_active_vram_size(adev, adev->gmc.real_vram_size);
+ }
+
+ return 0;
+diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c b/drivers/gpu/drm/amd/amdgpu/si_dpm.c
+index b1a3ca5..c88447d 100644
+--- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c
++++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c
+@@ -3065,7 +3065,7 @@ static bool si_dpm_vblank_too_short(void *handle)
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+ u32 vblank_time = amdgpu_dpm_get_vblank_time(adev);
+ /* we never hit the non-gddr5 limit so disable it */
+- u32 switch_limit = adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5 ? 450 : 0;
++ u32 switch_limit = adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5 ? 450 : 0;
+
+ if (vblank_time < switch_limit)
+ return true;
+@@ -4328,7 +4328,7 @@ static u8 si_get_strobe_mode_settings(struct amdgpu_device *adev, u32 mclk)
+ if (mclk <= pi->mclk_strobe_mode_threshold)
+ strobe_mode = true;
+
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5)
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5)
+ result = si_get_mclk_frequency_ratio(mclk, strobe_mode);
+ else
+ result = si_get_ddr3_mclk_frequency_ratio(mclk);
+@@ -4915,7 +4915,7 @@ static int si_populate_smc_initial_state(struct amdgpu_device *adev,
+ table->initialState.levels[0].bSP = cpu_to_be32(pi->dsp);
+ table->initialState.levels[0].gen2PCIE = (u8)si_pi->boot_pcie_gen;
+
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
+ table->initialState.levels[0].strobeMode =
+ si_get_strobe_mode_settings(adev,
+ initial_state->performance_levels[0].mclk);
+@@ -5187,7 +5187,7 @@ static int si_init_smc_table(struct amdgpu_device *adev)
+ if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_STEPVDDC)
+ table->systemFlags |= PPSMC_SYSTEMFLAG_STEPVDDC;
+
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5)
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5)
+ table->systemFlags |= PPSMC_SYSTEMFLAG_GDDR5;
+
+ if (adev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_REVERT_GPIO5_POLARITY)
+@@ -5364,7 +5364,7 @@ static int si_populate_mclk_value(struct amdgpu_device *adev,
+ mpll_ad_func_cntl &= ~YCLK_POST_DIV_MASK;
+ mpll_ad_func_cntl |= YCLK_POST_DIV(mpll_param.post_div);
+
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
+ mpll_dq_func_cntl &= ~(YCLK_SEL_MASK | YCLK_POST_DIV_MASK);
+ mpll_dq_func_cntl |= YCLK_SEL(mpll_param.yclk_sel) |
+ YCLK_POST_DIV(mpll_param.post_div);
+@@ -5376,7 +5376,7 @@ static int si_populate_mclk_value(struct amdgpu_device *adev,
+ u32 tmp;
+ u32 reference_clock = adev->clock.mpll.reference_freq;
+
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5)
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5)
+ freq_nom = memory_clock * 4;
+ else
+ freq_nom = memory_clock * 2;
+@@ -5468,7 +5468,7 @@ static int si_convert_power_level_to_smc(struct amdgpu_device *adev,
+ level->mcFlags |= SISLANDS_SMC_MC_PG_EN;
+ }
+
+- if (adev->mc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
++ if (adev->gmc.vram_type == AMDGPU_VRAM_TYPE_GDDR5) {
+ if (pl->mclk > pi->mclk_edc_enable_threshold)
+ level->mcFlags |= SISLANDS_SMC_MC_EDC_RD_FLAG;
+
+@@ -5839,12 +5839,12 @@ static int si_set_mc_special_registers(struct amdgpu_device *adev,
+ table->mc_reg_table_entry[k].mc_data[j] =
+ (temp_reg & 0xffff0000) |
+ (table->mc_reg_table_entry[k].mc_data[i] & 0x0000ffff);
+- if (adev->mc.vram_type != AMDGPU_VRAM_TYPE_GDDR5)
++ if (adev->gmc.vram_type != AMDGPU_VRAM_TYPE_GDDR5)
+ table->mc_reg_table_entry[k].mc_data[j] |= 0x100;
+ }
+ j++;
+
+- if (adev->mc.vram_type != AMDGPU_VRAM_TYPE_GDDR5) {
++ if (adev->gmc.vram_type != AMDGPU_VRAM_TYPE_GDDR5) {
+ if (j >= SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE)
+ return -EINVAL;
+ table->mc_reg_address[j].s1 = MC_PMG_AUTO_CMD;
+diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
+index 6b95f4f..4c19c96 100644
+--- a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
+@@ -1294,12 +1294,12 @@ static void uvd_v7_0_ring_emit_vm_flush(struct amdgpu_ring *ring,
+ unsigned vmid, uint64_t pd_addr)
+ {
+ struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub];
+- uint32_t req = ring->adev->gart.gart_funcs->get_invalidate_req(vmid);
++ uint32_t req = ring->adev->gmc.gmc_funcs->get_invalidate_req(vmid);
+ uint64_t flags = AMDGPU_PTE_VALID;
+ unsigned eng = ring->vm_inv_eng;
+ uint32_t data0, data1, mask;
+
+- amdgpu_gart_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
++ amdgpu_gmc_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
+ pd_addr |= flags;
+
+ data0 = (hub->ctx0_ptb_addr_hi32 + vmid * 2) << 2;
+@@ -1346,11 +1346,11 @@ static void uvd_v7_0_enc_ring_emit_vm_flush(struct amdgpu_ring *ring,
+ unsigned int vmid, uint64_t pd_addr)
+ {
+ struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub];
+- uint32_t req = ring->adev->gart.gart_funcs->get_invalidate_req(vmid);
++ uint32_t req = ring->adev->gmc.gmc_funcs->get_invalidate_req(vmid);
+ uint64_t flags = AMDGPU_PTE_VALID;
+ unsigned eng = ring->vm_inv_eng;
+
+- amdgpu_gart_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
++ amdgpu_gmc_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
+ pd_addr |= flags;
+
+ amdgpu_ring_write(ring, HEVC_ENC_CMD_REG_WRITE);
+diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c b/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
+index 7cf2eef..071fb17 100755
+--- a/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
+@@ -968,11 +968,11 @@ static void vce_v4_0_emit_vm_flush(struct amdgpu_ring *ring,
+ unsigned int vmid, uint64_t pd_addr)
+ {
+ struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub];
+- uint32_t req = ring->adev->gart.gart_funcs->get_invalidate_req(vmid);
++ uint32_t req = ring->adev->gmc.gmc_funcs->get_invalidate_req(vmid);
+ uint64_t flags = AMDGPU_PTE_VALID;
+ unsigned eng = ring->vm_inv_eng;
+
+- amdgpu_gart_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
++ amdgpu_gmc_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
+ pd_addr |= flags;
+
+ amdgpu_ring_write(ring, VCE_CMD_REG_WRITE);
+diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
+index 23dbb1e..6e8dad5 100644
+--- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
+@@ -913,12 +913,12 @@ static void vcn_v1_0_dec_ring_emit_vm_flush(struct amdgpu_ring *ring,
+ unsigned vmid, uint64_t pd_addr)
+ {
+ struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub];
+- uint32_t req = ring->adev->gart.gart_funcs->get_invalidate_req(vmid);
++ uint32_t req = ring->adev->gmc.gmc_funcs->get_invalidate_req(vmid);
+ uint64_t flags = AMDGPU_PTE_VALID;
+ unsigned eng = ring->vm_inv_eng;
+ uint32_t data0, data1, mask;
+
+- amdgpu_gart_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
++ amdgpu_gmc_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
+ pd_addr |= flags;
+
+ data0 = (hub->ctx0_ptb_addr_hi32 + vmid * 2) << 2;
+@@ -1046,11 +1046,11 @@ static void vcn_v1_0_enc_ring_emit_vm_flush(struct amdgpu_ring *ring,
+ unsigned int vmid, uint64_t pd_addr)
+ {
+ struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub];
+- uint32_t req = ring->adev->gart.gart_funcs->get_invalidate_req(vmid);
++ uint32_t req = ring->adev->gmc.gmc_funcs->get_invalidate_req(vmid);
+ uint64_t flags = AMDGPU_PTE_VALID;
+ unsigned eng = ring->vm_inv_eng;
+
+- amdgpu_gart_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
++ amdgpu_gmc_get_vm_pde(ring->adev, -1, &pd_addr, &flags);
+ pd_addr |= flags;
+
+ amdgpu_ring_write(ring, VCN_ENC_CMD_REG_WRITE);
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index 47a6a02..6f67892 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -438,7 +438,7 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
+ init_data.asic_id.pci_revision_id = adev->rev_id;
+ init_data.asic_id.hw_internal_rev = adev->external_rev_id;
+
+- init_data.asic_id.vram_width = adev->mc.vram_width;
++ init_data.asic_id.vram_width = adev->gmc.vram_width;
+ /* TODO: initialize init_data.asic_id.vram_type here!!!! */
+ init_data.asic_id.atombios_base_address =
+ adev->mode_info.atom_context->bios;
+@@ -1356,7 +1356,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev)
+ /* indicate support of immediate flip */
+ adev->ddev->mode_config.async_page_flip = true;
+
+- adev->ddev->mode_config.fb_base = adev->mc.aper_base;
++ adev->ddev->mode_config.fb_base = adev->gmc.aper_base;
+
+ r = amdgpu_modeset_create_props(adev);
+ if (r)
+--
+2.7.4
+