aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTom St Denis <tom.stdenis@amd.com>2017-06-12 08:45:02 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-06-15 11:50:26 -0400
commite5475e16eb37e86632cf6f3bb5102ed5aec2c16e (patch)
tree53f53bdea06721372b5c15564e37971f524717be /drivers
parent948edf095158db8d51db25527d8ff21cdff7eb35 (diff)
drm/amd/amdgpu: gfx9 tidy ups (v2)
A couple of simple tidy ups to register programming. Signed-off-by: Tom St Denis <tom.stdenis@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v2): Avoid using 'data' uninitialized Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index c1e9756dd975..e99df6296611 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -635,7 +635,7 @@ static void gfx_v9_0_get_csb_buffer(struct amdgpu_device *adev,
635 635
636static void gfx_v9_0_init_lbpw(struct amdgpu_device *adev) 636static void gfx_v9_0_init_lbpw(struct amdgpu_device *adev)
637{ 637{
638 uint32_t data = 0; 638 uint32_t data;
639 639
640 /* set mmRLC_LB_THR_CONFIG_1/2/3/4 */ 640 /* set mmRLC_LB_THR_CONFIG_1/2/3/4 */
641 WREG32_SOC15(GC, 0, mmRLC_LB_THR_CONFIG_1, 0x0000007F); 641 WREG32_SOC15(GC, 0, mmRLC_LB_THR_CONFIG_1, 0x0000007F);
@@ -655,12 +655,9 @@ static void gfx_v9_0_init_lbpw(struct amdgpu_device *adev)
655 WREG32_SOC15(GC, 0, mmRLC_LB_INIT_CU_MASK, 0xffffffff); 655 WREG32_SOC15(GC, 0, mmRLC_LB_INIT_CU_MASK, 0xffffffff);
656 656
657 /* set mmRLC_LB_PARAMS = 0x003F_1006 */ 657 /* set mmRLC_LB_PARAMS = 0x003F_1006 */
658 data |= (0x0003 << RLC_LB_PARAMS__FIFO_SAMPLES__SHIFT) & 658 data = REG_SET_FIELD(0, RLC_LB_PARAMS, FIFO_SAMPLES, 0x0003);
659 RLC_LB_PARAMS__FIFO_SAMPLES_MASK; 659 data |= REG_SET_FIELD(data, RLC_LB_PARAMS, PG_IDLE_SAMPLES, 0x0010);
660 data |= (0x0010 << RLC_LB_PARAMS__PG_IDLE_SAMPLES__SHIFT) & 660 data |= REG_SET_FIELD(data, RLC_LB_PARAMS, PG_IDLE_SAMPLE_INTERVAL, 0x033F);
661 RLC_LB_PARAMS__PG_IDLE_SAMPLES_MASK;
662 data |= (0x033F << RLC_LB_PARAMS__PG_IDLE_SAMPLE_INTERVAL__SHIFT) &
663 RLC_LB_PARAMS__PG_IDLE_SAMPLE_INTERVAL_MASK;
664 WREG32_SOC15(GC, 0, mmRLC_LB_PARAMS, data); 661 WREG32_SOC15(GC, 0, mmRLC_LB_PARAMS, data);
665 662
666 /* set mmRLC_GPM_GENERAL_7[31-16] = 0x00C0 */ 663 /* set mmRLC_GPM_GENERAL_7[31-16] = 0x00C0 */
@@ -675,24 +672,15 @@ static void gfx_v9_0_init_lbpw(struct amdgpu_device *adev)
675 /* set RLC_LB_CNTL = 0x8000_0095, 31 bit is reserved, 672 /* set RLC_LB_CNTL = 0x8000_0095, 31 bit is reserved,
676 * but used for RLC_LB_CNTL configuration */ 673 * but used for RLC_LB_CNTL configuration */
677 data = RLC_LB_CNTL__LB_CNT_SPIM_ACTIVE_MASK; 674 data = RLC_LB_CNTL__LB_CNT_SPIM_ACTIVE_MASK;
678 data |= (0x09 << RLC_LB_CNTL__CU_MASK_USED_OFF_HYST__SHIFT) & 675 data |= REG_SET_FIELD(data, RLC_LB_CNTL, CU_MASK_USED_OFF_HYST, 0x09);
679 RLC_LB_CNTL__CU_MASK_USED_OFF_HYST_MASK; 676 data |= REG_SET_FIELD(data, RLC_LB_CNTL, RESERVED, 0x80000);
680 data |= (0x80000 << RLC_LB_CNTL__RESERVED__SHIFT) &
681 RLC_LB_CNTL__RESERVED_MASK;
682 WREG32_SOC15(GC, 0, mmRLC_LB_CNTL, data); 677 WREG32_SOC15(GC, 0, mmRLC_LB_CNTL, data);
683 mutex_unlock(&adev->grbm_idx_mutex); 678 mutex_unlock(&adev->grbm_idx_mutex);
684} 679}
685 680
686static void gfx_v9_0_enable_lbpw(struct amdgpu_device *adev, bool enable) 681static void gfx_v9_0_enable_lbpw(struct amdgpu_device *adev, bool enable)
687{ 682{
688 uint32_t data = 0; 683 WREG32_FIELD15(GC, 0, RLC_LB_CNTL, LOAD_BALANCE_ENABLE, enable ? 1 : 0);
689
690 data = RREG32_SOC15(GC, 0, mmRLC_LB_CNTL);
691 if (enable)
692 data |= RLC_LB_CNTL__LOAD_BALANCE_ENABLE_MASK;
693 else
694 data &= ~RLC_LB_CNTL__LOAD_BALANCE_ENABLE_MASK;
695 WREG32_SOC15(GC, 0, mmRLC_LB_CNTL, data);
696} 684}
697 685
698static void rv_init_cp_jump_table(struct amdgpu_device *adev) 686static void rv_init_cp_jump_table(struct amdgpu_device *adev)