aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2016-05-03 16:25:53 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-05-11 12:31:21 -0400
commit7dae69a2905c34a97678645c8e4c95095f5390b8 (patch)
treec60bebc39578bf13cd64989775e9dc9e71819a3a
parentedf600dac65eecb6c8bcf21fa986db30ee21a2ac (diff)
drm/amdgpu: fetch cu_info once at init
Fetch this info once at init and just store the results for future requests. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h20
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c4
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c9
-rw-r--r--drivers/gpu/drm/amd/amdgpu/cik.c1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c23
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c11
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/vi.c1
9 files changed, 25 insertions, 46 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index abe62ecaaef4..6589d43bd094 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1148,6 +1148,12 @@ struct amdgpu_gca_config {
1148 uint32_t macrotile_mode_array[16]; 1148 uint32_t macrotile_mode_array[16];
1149}; 1149};
1150 1150
1151struct amdgpu_cu_info {
1152 uint32_t number; /* total active CU number */
1153 uint32_t ao_cu_mask;
1154 uint32_t bitmap[4][4];
1155};
1156
1151struct amdgpu_gfx { 1157struct amdgpu_gfx {
1152 struct mutex gpu_clock_mutex; 1158 struct mutex gpu_clock_mutex;
1153 struct amdgpu_gca_config config; 1159 struct amdgpu_gca_config config;
@@ -1180,9 +1186,10 @@ struct amdgpu_gfx {
1180 struct amdgpu_irq_src priv_reg_irq; 1186 struct amdgpu_irq_src priv_reg_irq;
1181 struct amdgpu_irq_src priv_inst_irq; 1187 struct amdgpu_irq_src priv_inst_irq;
1182 /* gfx status */ 1188 /* gfx status */
1183 uint32_t gfx_current_status; 1189 uint32_t gfx_current_status;
1184 /* ce ram size*/ 1190 /* ce ram size*/
1185 unsigned ce_ram_size; 1191 unsigned ce_ram_size;
1192 struct amdgpu_cu_info cu_info;
1186}; 1193};
1187 1194
1188int amdgpu_ib_get(struct amdgpu_device *adev, struct amdgpu_vm *vm, 1195int amdgpu_ib_get(struct amdgpu_device *adev, struct amdgpu_vm *vm,
@@ -1794,13 +1801,6 @@ struct amdgpu_allowed_register_entry {
1794 bool grbm_indexed; 1801 bool grbm_indexed;
1795}; 1802};
1796 1803
1797struct amdgpu_cu_info {
1798 uint32_t number; /* total active CU number */
1799 uint32_t ao_cu_mask;
1800 uint32_t bitmap[4][4];
1801};
1802
1803
1804/* 1804/*
1805 * ASIC specific functions. 1805 * ASIC specific functions.
1806 */ 1806 */
@@ -1818,7 +1818,6 @@ struct amdgpu_asic_funcs {
1818 u32 (*get_xclk)(struct amdgpu_device *adev); 1818 u32 (*get_xclk)(struct amdgpu_device *adev);
1819 /* get the gpu clock counter */ 1819 /* get the gpu clock counter */
1820 uint64_t (*get_gpu_clock_counter)(struct amdgpu_device *adev); 1820 uint64_t (*get_gpu_clock_counter)(struct amdgpu_device *adev);
1821 int (*get_cu_info)(struct amdgpu_device *adev, struct amdgpu_cu_info *info);
1822 /* MM block clocks */ 1821 /* MM block clocks */
1823 int (*set_uvd_clocks)(struct amdgpu_device *adev, u32 vclk, u32 dclk); 1822 int (*set_uvd_clocks)(struct amdgpu_device *adev, u32 vclk, u32 dclk);
1824 int (*set_vce_clocks)(struct amdgpu_device *adev, u32 evclk, u32 ecclk); 1823 int (*set_vce_clocks)(struct amdgpu_device *adev, u32 evclk, u32 ecclk);
@@ -2210,7 +2209,6 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
2210#define amdgpu_asic_read_disabled_bios(adev) (adev)->asic_funcs->read_disabled_bios((adev)) 2209#define amdgpu_asic_read_disabled_bios(adev) (adev)->asic_funcs->read_disabled_bios((adev))
2211#define amdgpu_asic_read_bios_from_rom(adev, b, l) (adev)->asic_funcs->read_bios_from_rom((adev), (b), (l)) 2210#define amdgpu_asic_read_bios_from_rom(adev, b, l) (adev)->asic_funcs->read_bios_from_rom((adev), (b), (l))
2212#define amdgpu_asic_read_register(adev, se, sh, offset, v)((adev)->asic_funcs->read_register((adev), (se), (sh), (offset), (v))) 2211#define amdgpu_asic_read_register(adev, se, sh, offset, v)((adev)->asic_funcs->read_register((adev), (se), (sh), (offset), (v)))
2213#define amdgpu_asic_get_cu_info(adev, info) (adev)->asic_funcs->get_cu_info((adev), (info))
2214#define amdgpu_gart_flush_gpu_tlb(adev, vmid) (adev)->gart.gart_funcs->flush_gpu_tlb((adev), (vmid)) 2212#define amdgpu_gart_flush_gpu_tlb(adev, vmid) (adev)->gart.gart_funcs->flush_gpu_tlb((adev), (vmid))
2215#define amdgpu_gart_set_pte_pde(adev, pt, idx, addr, flags) (adev)->gart.gart_funcs->set_pte_pde((adev), (pt), (idx), (addr), (flags)) 2213#define amdgpu_gart_set_pte_pde(adev, pt, idx, addr, flags) (adev)->gart.gart_funcs->set_pte_pde((adev), (pt), (idx), (addr), (flags))
2216#define amdgpu_vm_copy_pte(adev, ib, pe, src, count) ((adev)->vm_manager.vm_pte_funcs->copy_pte((ib), (pe), (src), (count))) 2214#define amdgpu_vm_copy_pte(adev, ib, pe, src, count) ((adev)->vm_manager.vm_pte_funcs->copy_pte((ib), (pe), (src), (count)))
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
index 490464e39322..199f76baf22c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
@@ -793,7 +793,6 @@ static int amdgpu_cgs_query_system_info(struct cgs_device *cgs_device,
793 struct cgs_system_info *sys_info) 793 struct cgs_system_info *sys_info)
794{ 794{
795 CGS_FUNC_ADEV; 795 CGS_FUNC_ADEV;
796 struct amdgpu_cu_info cu_info;
797 796
798 if (NULL == sys_info) 797 if (NULL == sys_info)
799 return -ENODEV; 798 return -ENODEV;
@@ -818,8 +817,7 @@ static int amdgpu_cgs_query_system_info(struct cgs_device *cgs_device,
818 sys_info->value = adev->pg_flags; 817 sys_info->value = adev->pg_flags;
819 break; 818 break;
820 case CGS_SYSTEM_INFO_GFX_CU_INFO: 819 case CGS_SYSTEM_INFO_GFX_CU_INFO:
821 amdgpu_asic_get_cu_info(adev, &cu_info); 820 sys_info->value = adev->gfx.cu_info.number;
822 sys_info->value = cu_info.number;
823 break; 821 break;
824 default: 822 default:
825 return -ENODEV; 823 return -ENODEV;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 7db271278e70..40a23704a981 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -427,7 +427,6 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
427 } 427 }
428 case AMDGPU_INFO_DEV_INFO: { 428 case AMDGPU_INFO_DEV_INFO: {
429 struct drm_amdgpu_info_device dev_info = {}; 429 struct drm_amdgpu_info_device dev_info = {};
430 struct amdgpu_cu_info cu_info;
431 430
432 dev_info.device_id = dev->pdev->device; 431 dev_info.device_id = dev->pdev->device;
433 dev_info.chip_rev = adev->rev_id; 432 dev_info.chip_rev = adev->rev_id;
@@ -461,11 +460,11 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
461 AMDGPU_GPU_PAGE_SIZE; 460 AMDGPU_GPU_PAGE_SIZE;
462 dev_info.gart_page_size = AMDGPU_GPU_PAGE_SIZE; 461 dev_info.gart_page_size = AMDGPU_GPU_PAGE_SIZE;
463 462
464 amdgpu_asic_get_cu_info(adev, &cu_info); 463 dev_info.cu_active_number = adev->gfx.cu_info.number;
465 dev_info.cu_active_number = cu_info.number; 464 dev_info.cu_ao_mask = adev->gfx.cu_info.ao_cu_mask;
466 dev_info.cu_ao_mask = cu_info.ao_cu_mask;
467 dev_info.ce_ram_size = adev->gfx.ce_ram_size; 465 dev_info.ce_ram_size = adev->gfx.ce_ram_size;
468 memcpy(&dev_info.cu_bitmap[0], &cu_info.bitmap[0], sizeof(cu_info.bitmap)); 466 memcpy(&dev_info.cu_bitmap[0], &adev->gfx.cu_info.bitmap[0],
467 sizeof(adev->gfx.cu_info.bitmap));
469 dev_info.vram_type = adev->mc.vram_type; 468 dev_info.vram_type = adev->mc.vram_type;
470 dev_info.vram_bit_width = adev->mc.vram_width; 469 dev_info.vram_bit_width = adev->mc.vram_width;
471 dev_info.vce_harvest_config = adev->vce.harvest_config; 470 dev_info.vce_harvest_config = adev->vce.harvest_config;
diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c
index c6127d66de11..68e569853c95 100644
--- a/drivers/gpu/drm/amd/amdgpu/cik.c
+++ b/drivers/gpu/drm/amd/amdgpu/cik.c
@@ -2007,7 +2007,6 @@ static const struct amdgpu_asic_funcs cik_asic_funcs =
2007 .get_xclk = &cik_get_xclk, 2007 .get_xclk = &cik_get_xclk,
2008 .set_uvd_clocks = &cik_set_uvd_clocks, 2008 .set_uvd_clocks = &cik_set_uvd_clocks,
2009 .set_vce_clocks = &cik_set_vce_clocks, 2009 .set_vce_clocks = &cik_set_vce_clocks,
2010 .get_cu_info = &gfx_v7_0_get_cu_info,
2011 /* these should be moved to their own ip modules */ 2010 /* these should be moved to their own ip modules */
2012 .get_gpu_clock_counter = &gfx_v7_0_get_gpu_clock_counter, 2011 .get_gpu_clock_counter = &gfx_v7_0_get_gpu_clock_counter,
2013 .wait_for_mc_idle = &gmc_v7_0_mc_wait_for_idle, 2012 .wait_for_mc_idle = &gmc_v7_0_mc_wait_for_idle,
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
index 03108909a275..0014a9ceaf29 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -53,7 +53,6 @@
53static void gfx_v7_0_set_ring_funcs(struct amdgpu_device *adev); 53static void gfx_v7_0_set_ring_funcs(struct amdgpu_device *adev);
54static void gfx_v7_0_set_irq_funcs(struct amdgpu_device *adev); 54static void gfx_v7_0_set_irq_funcs(struct amdgpu_device *adev);
55static void gfx_v7_0_set_gds_init(struct amdgpu_device *adev); 55static void gfx_v7_0_set_gds_init(struct amdgpu_device *adev);
56int gfx_v7_0_get_cu_info(struct amdgpu_device *, struct amdgpu_cu_info *);
57 56
58MODULE_FIRMWARE("radeon/bonaire_pfp.bin"); 57MODULE_FIRMWARE("radeon/bonaire_pfp.bin");
59MODULE_FIRMWARE("radeon/bonaire_me.bin"); 58MODULE_FIRMWARE("radeon/bonaire_me.bin");
@@ -882,6 +881,7 @@ static u32 gfx_v7_0_get_csb_size(struct amdgpu_device *adev);
882static void gfx_v7_0_get_csb_buffer(struct amdgpu_device *adev, volatile u32 *buffer); 881static void gfx_v7_0_get_csb_buffer(struct amdgpu_device *adev, volatile u32 *buffer);
883static void gfx_v7_0_init_cp_pg_table(struct amdgpu_device *adev); 882static void gfx_v7_0_init_cp_pg_table(struct amdgpu_device *adev);
884static void gfx_v7_0_init_pg(struct amdgpu_device *adev); 883static void gfx_v7_0_init_pg(struct amdgpu_device *adev);
884static void gfx_v7_0_get_cu_info(struct amdgpu_device *adev);
885 885
886/* 886/*
887 * Core functions 887 * Core functions
@@ -1718,6 +1718,7 @@ static void gfx_v7_0_gpu_init(struct amdgpu_device *adev)
1718 gfx_v7_0_tiling_mode_table_init(adev); 1718 gfx_v7_0_tiling_mode_table_init(adev);
1719 1719
1720 gfx_v7_0_setup_rb(adev); 1720 gfx_v7_0_setup_rb(adev);
1721 gfx_v7_0_get_cu_info(adev);
1721 1722
1722 /* set HW defaults for 3D engine */ 1723 /* set HW defaults for 3D engine */
1723 WREG32(mmCP_MEQ_THRESHOLDS, 1724 WREG32(mmCP_MEQ_THRESHOLDS,
@@ -3869,18 +3870,13 @@ static u32 gfx_v7_0_get_cu_active_bitmap(struct amdgpu_device *adev)
3869 3870
3870static void gfx_v7_0_init_ao_cu_mask(struct amdgpu_device *adev) 3871static void gfx_v7_0_init_ao_cu_mask(struct amdgpu_device *adev)
3871{ 3872{
3872 uint32_t tmp, active_cu_number; 3873 u32 tmp;
3873 struct amdgpu_cu_info cu_info;
3874
3875 gfx_v7_0_get_cu_info(adev, &cu_info);
3876 tmp = cu_info.ao_cu_mask;
3877 active_cu_number = cu_info.number;
3878 3874
3879 WREG32(mmRLC_PG_ALWAYS_ON_CU_MASK, tmp); 3875 WREG32(mmRLC_PG_ALWAYS_ON_CU_MASK, adev->gfx.cu_info.ao_cu_mask);
3880 3876
3881 tmp = RREG32(mmRLC_MAX_PG_CU); 3877 tmp = RREG32(mmRLC_MAX_PG_CU);
3882 tmp &= ~RLC_MAX_PG_CU__MAX_POWERED_UP_CU_MASK; 3878 tmp &= ~RLC_MAX_PG_CU__MAX_POWERED_UP_CU_MASK;
3883 tmp |= (active_cu_number << RLC_MAX_PG_CU__MAX_POWERED_UP_CU__SHIFT); 3879 tmp |= (adev->gfx.cu_info.number << RLC_MAX_PG_CU__MAX_POWERED_UP_CU__SHIFT);
3884 WREG32(mmRLC_MAX_PG_CU, tmp); 3880 WREG32(mmRLC_MAX_PG_CU, tmp);
3885} 3881}
3886 3882
@@ -5015,14 +5011,11 @@ static void gfx_v7_0_set_gds_init(struct amdgpu_device *adev)
5015} 5011}
5016 5012
5017 5013
5018int gfx_v7_0_get_cu_info(struct amdgpu_device *adev, 5014static void gfx_v7_0_get_cu_info(struct amdgpu_device *adev)
5019 struct amdgpu_cu_info *cu_info)
5020{ 5015{
5021 int i, j, k, counter, active_cu_number = 0; 5016 int i, j, k, counter, active_cu_number = 0;
5022 u32 mask, bitmap, ao_bitmap, ao_cu_mask = 0; 5017 u32 mask, bitmap, ao_bitmap, ao_cu_mask = 0;
5023 5018 struct amdgpu_cu_info *cu_info = &adev->gfx.cu_info;
5024 if (!adev || !cu_info)
5025 return -EINVAL;
5026 5019
5027 memset(cu_info, 0, sizeof(*cu_info)); 5020 memset(cu_info, 0, sizeof(*cu_info));
5028 5021
@@ -5053,6 +5046,4 @@ int gfx_v7_0_get_cu_info(struct amdgpu_device *adev,
5053 5046
5054 cu_info->number = active_cu_number; 5047 cu_info->number = active_cu_number;
5055 cu_info->ao_cu_mask = ao_cu_mask; 5048 cu_info->ao_cu_mask = ao_cu_mask;
5056
5057 return 0;
5058} 5049}
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h
index c04bfbabfc88..e747aa935c88 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h
@@ -32,6 +32,5 @@ void gfx_v7_0_exit_rlc_safe_mode(struct amdgpu_device *adev);
32void gfx_v7_0_rlc_stop(struct amdgpu_device *adev); 32void gfx_v7_0_rlc_stop(struct amdgpu_device *adev);
33uint64_t gfx_v7_0_get_gpu_clock_counter(struct amdgpu_device *adev); 33uint64_t gfx_v7_0_get_gpu_clock_counter(struct amdgpu_device *adev);
34void gfx_v7_0_select_se_sh(struct amdgpu_device *adev, u32 se_num, u32 sh_num); 34void gfx_v7_0_select_se_sh(struct amdgpu_device *adev, u32 se_num, u32 sh_num);
35int gfx_v7_0_get_cu_info(struct amdgpu_device *adev, struct amdgpu_cu_info *cu_info);
36 35
37#endif 36#endif
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 4ea4b4eb0bc5..7525f99858f1 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -636,6 +636,7 @@ static void gfx_v8_0_set_irq_funcs(struct amdgpu_device *adev);
636static void gfx_v8_0_set_gds_init(struct amdgpu_device *adev); 636static void gfx_v8_0_set_gds_init(struct amdgpu_device *adev);
637static void gfx_v8_0_set_rlc_funcs(struct amdgpu_device *adev); 637static void gfx_v8_0_set_rlc_funcs(struct amdgpu_device *adev);
638static u32 gfx_v8_0_get_csb_size(struct amdgpu_device *adev); 638static u32 gfx_v8_0_get_csb_size(struct amdgpu_device *adev);
639static void gfx_v8_0_get_cu_info(struct amdgpu_device *adev);
639 640
640static void gfx_v8_0_init_golden_registers(struct amdgpu_device *adev) 641static void gfx_v8_0_init_golden_registers(struct amdgpu_device *adev)
641{ 642{
@@ -3431,6 +3432,7 @@ static void gfx_v8_0_gpu_init(struct amdgpu_device *adev)
3431 gfx_v8_0_tiling_mode_table_init(adev); 3432 gfx_v8_0_tiling_mode_table_init(adev);
3432 3433
3433 gfx_v8_0_setup_rb(adev); 3434 gfx_v8_0_setup_rb(adev);
3435 gfx_v8_0_get_cu_info(adev);
3434 3436
3435 /* XXX SH_MEM regs */ 3437 /* XXX SH_MEM regs */
3436 /* where to put LDS, scratch, GPUVM in FSA64 space */ 3438 /* where to put LDS, scratch, GPUVM in FSA64 space */
@@ -6212,14 +6214,11 @@ static u32 gfx_v8_0_get_cu_active_bitmap(struct amdgpu_device *adev)
6212 return (~data) & mask; 6214 return (~data) & mask;
6213} 6215}
6214 6216
6215int gfx_v8_0_get_cu_info(struct amdgpu_device *adev, 6217static void gfx_v8_0_get_cu_info(struct amdgpu_device *adev)
6216 struct amdgpu_cu_info *cu_info)
6217{ 6218{
6218 int i, j, k, counter, active_cu_number = 0; 6219 int i, j, k, counter, active_cu_number = 0;
6219 u32 mask, bitmap, ao_bitmap, ao_cu_mask = 0; 6220 u32 mask, bitmap, ao_bitmap, ao_cu_mask = 0;
6220 6221 struct amdgpu_cu_info *cu_info = &adev->gfx.cu_info;
6221 if (!adev || !cu_info)
6222 return -EINVAL;
6223 6222
6224 memset(cu_info, 0, sizeof(*cu_info)); 6223 memset(cu_info, 0, sizeof(*cu_info));
6225 6224
@@ -6250,6 +6249,4 @@ int gfx_v8_0_get_cu_info(struct amdgpu_device *adev,
6250 6249
6251 cu_info->number = active_cu_number; 6250 cu_info->number = active_cu_number;
6252 cu_info->ao_cu_mask = ao_cu_mask; 6251 cu_info->ao_cu_mask = ao_cu_mask;
6253
6254 return 0;
6255} 6252}
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h
index 021e05193cb9..16a49f53a2fa 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h
@@ -28,6 +28,5 @@ extern const struct amd_ip_funcs gfx_v8_0_ip_funcs;
28 28
29uint64_t gfx_v8_0_get_gpu_clock_counter(struct amdgpu_device *adev); 29uint64_t gfx_v8_0_get_gpu_clock_counter(struct amdgpu_device *adev);
30void gfx_v8_0_select_se_sh(struct amdgpu_device *adev, u32 se_num, u32 sh_num); 30void gfx_v8_0_select_se_sh(struct amdgpu_device *adev, u32 se_num, u32 sh_num);
31int gfx_v8_0_get_cu_info(struct amdgpu_device *adev, struct amdgpu_cu_info *cu_info);
32 31
33#endif 32#endif
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c
index 31dd6304f208..b7da094f8bf9 100644
--- a/drivers/gpu/drm/amd/amdgpu/vi.c
+++ b/drivers/gpu/drm/amd/amdgpu/vi.c
@@ -1118,7 +1118,6 @@ static const struct amdgpu_asic_funcs vi_asic_funcs =
1118 .get_xclk = &vi_get_xclk, 1118 .get_xclk = &vi_get_xclk,
1119 .set_uvd_clocks = &vi_set_uvd_clocks, 1119 .set_uvd_clocks = &vi_set_uvd_clocks,
1120 .set_vce_clocks = &vi_set_vce_clocks, 1120 .set_vce_clocks = &vi_set_vce_clocks,
1121 .get_cu_info = &gfx_v8_0_get_cu_info,
1122 /* these should be moved to their own ip modules */ 1121 /* these should be moved to their own ip modules */
1123 .get_gpu_clock_counter = &gfx_v8_0_get_gpu_clock_counter, 1122 .get_gpu_clock_counter = &gfx_v8_0_get_gpu_clock_counter,
1124 .wait_for_mc_idle = &gmc_v8_0_mc_wait_for_idle, 1123 .wait_for_mc_idle = &gmc_v8_0_mc_wait_for_idle,