diff options
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/nbio_v7_0.c | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v7_0.c b/drivers/gpu/drm/amd/amdgpu/nbio_v7_0.c index 7e1206d1df6a..aa04632523fa 100644 --- a/drivers/gpu/drm/amd/amdgpu/nbio_v7_0.c +++ b/drivers/gpu/drm/amd/amdgpu/nbio_v7_0.c | |||
@@ -34,7 +34,7 @@ | |||
34 | 34 | ||
35 | u32 nbio_v7_0_get_rev_id(struct amdgpu_device *adev) | 35 | u32 nbio_v7_0_get_rev_id(struct amdgpu_device *adev) |
36 | { | 36 | { |
37 | u32 tmp = RREG32(SOC15_REG_OFFSET(NBIO, 0, mmRCC_DEV0_EPF0_STRAP0)); | 37 | u32 tmp = RREG32_SOC15(NBIO, 0, mmRCC_DEV0_EPF0_STRAP0); |
38 | 38 | ||
39 | tmp &= RCC_DEV0_EPF0_STRAP0__STRAP_ATI_REV_ID_DEV0_F0_MASK; | 39 | tmp &= RCC_DEV0_EPF0_STRAP0__STRAP_ATI_REV_ID_DEV0_F0_MASK; |
40 | tmp >>= RCC_DEV0_EPF0_STRAP0__STRAP_ATI_REV_ID_DEV0_F0__SHIFT; | 40 | tmp >>= RCC_DEV0_EPF0_STRAP0__STRAP_ATI_REV_ID_DEV0_F0__SHIFT; |
@@ -45,32 +45,32 @@ u32 nbio_v7_0_get_rev_id(struct amdgpu_device *adev) | |||
45 | u32 nbio_v7_0_get_atombios_scratch_regs(struct amdgpu_device *adev, | 45 | u32 nbio_v7_0_get_atombios_scratch_regs(struct amdgpu_device *adev, |
46 | uint32_t idx) | 46 | uint32_t idx) |
47 | { | 47 | { |
48 | return RREG32(SOC15_REG_OFFSET(NBIO, 0, mmBIOS_SCRATCH_0) + idx); | 48 | return RREG32_SOC15_OFFSET(NBIO, 0, mmBIOS_SCRATCH_0, idx); |
49 | } | 49 | } |
50 | 50 | ||
51 | void nbio_v7_0_set_atombios_scratch_regs(struct amdgpu_device *adev, | 51 | void nbio_v7_0_set_atombios_scratch_regs(struct amdgpu_device *adev, |
52 | uint32_t idx, uint32_t val) | 52 | uint32_t idx, uint32_t val) |
53 | { | 53 | { |
54 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmBIOS_SCRATCH_0) + idx, val); | 54 | WREG32_SOC15_OFFSET(NBIO, 0, mmBIOS_SCRATCH_0, idx, val); |
55 | } | 55 | } |
56 | 56 | ||
57 | void nbio_v7_0_mc_access_enable(struct amdgpu_device *adev, bool enable) | 57 | void nbio_v7_0_mc_access_enable(struct amdgpu_device *adev, bool enable) |
58 | { | 58 | { |
59 | if (enable) | 59 | if (enable) |
60 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmBIF_FB_EN), | 60 | WREG32_SOC15(NBIO, 0, mmBIF_FB_EN, |
61 | BIF_FB_EN__FB_READ_EN_MASK | BIF_FB_EN__FB_WRITE_EN_MASK); | 61 | BIF_FB_EN__FB_READ_EN_MASK | BIF_FB_EN__FB_WRITE_EN_MASK); |
62 | else | 62 | else |
63 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmBIF_FB_EN), 0); | 63 | WREG32_SOC15(NBIO, 0, mmBIF_FB_EN, 0); |
64 | } | 64 | } |
65 | 65 | ||
66 | void nbio_v7_0_hdp_flush(struct amdgpu_device *adev) | 66 | void nbio_v7_0_hdp_flush(struct amdgpu_device *adev) |
67 | { | 67 | { |
68 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmHDP_MEM_COHERENCY_FLUSH_CNTL), 0); | 68 | WREG32_SOC15(NBIO, 0, mmHDP_MEM_COHERENCY_FLUSH_CNTL, 0); |
69 | } | 69 | } |
70 | 70 | ||
71 | u32 nbio_v7_0_get_memsize(struct amdgpu_device *adev) | 71 | u32 nbio_v7_0_get_memsize(struct amdgpu_device *adev) |
72 | { | 72 | { |
73 | return RREG32(SOC15_REG_OFFSET(NBIO, 0, mmRCC_CONFIG_MEMSIZE)); | 73 | return RREG32_SOC15(NBIO, 0, mmRCC_CONFIG_MEMSIZE); |
74 | } | 74 | } |
75 | 75 | ||
76 | static const u32 nbio_sdma_doorbell_range_reg[] = | 76 | static const u32 nbio_sdma_doorbell_range_reg[] = |
@@ -96,21 +96,13 @@ void nbio_v7_0_sdma_doorbell_range(struct amdgpu_device *adev, int instance, | |||
96 | void nbio_v7_0_enable_doorbell_aperture(struct amdgpu_device *adev, | 96 | void nbio_v7_0_enable_doorbell_aperture(struct amdgpu_device *adev, |
97 | bool enable) | 97 | bool enable) |
98 | { | 98 | { |
99 | u32 tmp; | 99 | WREG32_FIELD15(NBIO, 0, RCC_DOORBELL_APER_EN, BIF_DOORBELL_APER_EN, enable ? 1 : 0); |
100 | |||
101 | tmp = RREG32(SOC15_REG_OFFSET(NBIO, 0, mmRCC_DOORBELL_APER_EN)); | ||
102 | if (enable) | ||
103 | tmp = REG_SET_FIELD(tmp, RCC_DOORBELL_APER_EN, BIF_DOORBELL_APER_EN, 1); | ||
104 | else | ||
105 | tmp = REG_SET_FIELD(tmp, RCC_DOORBELL_APER_EN, BIF_DOORBELL_APER_EN, 0); | ||
106 | |||
107 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmRCC_DOORBELL_APER_EN), tmp); | ||
108 | } | 100 | } |
109 | 101 | ||
110 | void nbio_v7_0_ih_doorbell_range(struct amdgpu_device *adev, | 102 | void nbio_v7_0_ih_doorbell_range(struct amdgpu_device *adev, |
111 | bool use_doorbell, int doorbell_index) | 103 | bool use_doorbell, int doorbell_index) |
112 | { | 104 | { |
113 | u32 ih_doorbell_range = RREG32(SOC15_REG_OFFSET(NBIO, 0 , mmBIF_IH_DOORBELL_RANGE)); | 105 | u32 ih_doorbell_range = RREG32_SOC15(NBIO, 0 , mmBIF_IH_DOORBELL_RANGE); |
114 | 106 | ||
115 | if (use_doorbell) { | 107 | if (use_doorbell) { |
116 | ih_doorbell_range = REG_SET_FIELD(ih_doorbell_range, BIF_IH_DOORBELL_RANGE, OFFSET, doorbell_index); | 108 | ih_doorbell_range = REG_SET_FIELD(ih_doorbell_range, BIF_IH_DOORBELL_RANGE, OFFSET, doorbell_index); |
@@ -118,15 +110,15 @@ void nbio_v7_0_ih_doorbell_range(struct amdgpu_device *adev, | |||
118 | } else | 110 | } else |
119 | ih_doorbell_range = REG_SET_FIELD(ih_doorbell_range, BIF_IH_DOORBELL_RANGE, SIZE, 0); | 111 | ih_doorbell_range = REG_SET_FIELD(ih_doorbell_range, BIF_IH_DOORBELL_RANGE, SIZE, 0); |
120 | 112 | ||
121 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmBIF_IH_DOORBELL_RANGE), ih_doorbell_range); | 113 | WREG32_SOC15(NBIO, 0, mmBIF_IH_DOORBELL_RANGE, ih_doorbell_range); |
122 | } | 114 | } |
123 | 115 | ||
124 | static uint32_t nbio_7_0_read_syshub_ind_mmr(struct amdgpu_device *adev, uint32_t offset) | 116 | static uint32_t nbio_7_0_read_syshub_ind_mmr(struct amdgpu_device *adev, uint32_t offset) |
125 | { | 117 | { |
126 | uint32_t data; | 118 | uint32_t data; |
127 | 119 | ||
128 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmSYSHUB_INDEX), offset); | 120 | WREG32_SOC15(NBIO, 0, mmSYSHUB_INDEX, offset); |
129 | data = RREG32(SOC15_REG_OFFSET(NBIO, 0, mmSYSHUB_DATA)); | 121 | data = RREG32_SOC15(NBIO, 0, mmSYSHUB_DATA); |
130 | 122 | ||
131 | return data; | 123 | return data; |
132 | } | 124 | } |
@@ -134,8 +126,8 @@ static uint32_t nbio_7_0_read_syshub_ind_mmr(struct amdgpu_device *adev, uint32_ | |||
134 | static void nbio_7_0_write_syshub_ind_mmr(struct amdgpu_device *adev, uint32_t offset, | 126 | static void nbio_7_0_write_syshub_ind_mmr(struct amdgpu_device *adev, uint32_t offset, |
135 | uint32_t data) | 127 | uint32_t data) |
136 | { | 128 | { |
137 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmSYSHUB_INDEX), offset); | 129 | WREG32_SOC15(NBIO, 0, mmSYSHUB_INDEX, offset); |
138 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmSYSHUB_DATA), data); | 130 | WREG32_SOC15(NBIO, 0, mmSYSHUB_DATA, data); |
139 | } | 131 | } |
140 | 132 | ||
141 | void nbio_v7_0_update_medium_grain_clock_gating(struct amdgpu_device *adev, | 133 | void nbio_v7_0_update_medium_grain_clock_gating(struct amdgpu_device *adev, |
@@ -182,15 +174,15 @@ void nbio_v7_0_ih_control(struct amdgpu_device *adev) | |||
182 | u32 interrupt_cntl; | 174 | u32 interrupt_cntl; |
183 | 175 | ||
184 | /* setup interrupt control */ | 176 | /* setup interrupt control */ |
185 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmINTERRUPT_CNTL2), adev->dummy_page.addr >> 8); | 177 | WREG32_SOC15(NBIO, 0, mmINTERRUPT_CNTL2, adev->dummy_page.addr >> 8); |
186 | interrupt_cntl = RREG32(SOC15_REG_OFFSET(NBIO, 0, mmINTERRUPT_CNTL)); | 178 | interrupt_cntl = RREG32_SOC15(NBIO, 0, mmINTERRUPT_CNTL); |
187 | /* INTERRUPT_CNTL__IH_DUMMY_RD_OVERRIDE_MASK=0 - dummy read disabled with msi, enabled without msi | 179 | /* INTERRUPT_CNTL__IH_DUMMY_RD_OVERRIDE_MASK=0 - dummy read disabled with msi, enabled without msi |
188 | * INTERRUPT_CNTL__IH_DUMMY_RD_OVERRIDE_MASK=1 - dummy read controlled by IH_DUMMY_RD_EN | 180 | * INTERRUPT_CNTL__IH_DUMMY_RD_OVERRIDE_MASK=1 - dummy read controlled by IH_DUMMY_RD_EN |
189 | */ | 181 | */ |
190 | interrupt_cntl = REG_SET_FIELD(interrupt_cntl, INTERRUPT_CNTL, IH_DUMMY_RD_OVERRIDE, 0); | 182 | interrupt_cntl = REG_SET_FIELD(interrupt_cntl, INTERRUPT_CNTL, IH_DUMMY_RD_OVERRIDE, 0); |
191 | /* INTERRUPT_CNTL__IH_REQ_NONSNOOP_EN_MASK=1 if ring is in non-cacheable memory, e.g., vram */ | 183 | /* INTERRUPT_CNTL__IH_REQ_NONSNOOP_EN_MASK=1 if ring is in non-cacheable memory, e.g., vram */ |
192 | interrupt_cntl = REG_SET_FIELD(interrupt_cntl, INTERRUPT_CNTL, IH_REQ_NONSNOOP_EN, 0); | 184 | interrupt_cntl = REG_SET_FIELD(interrupt_cntl, INTERRUPT_CNTL, IH_REQ_NONSNOOP_EN, 0); |
193 | WREG32(SOC15_REG_OFFSET(NBIO, 0, mmINTERRUPT_CNTL), interrupt_cntl); | 185 | WREG32_SOC15(NBIO, 0, mmINTERRUPT_CNTL, interrupt_cntl); |
194 | } | 186 | } |
195 | 187 | ||
196 | struct nbio_hdp_flush_reg nbio_v7_0_hdp_flush_reg; | 188 | struct nbio_hdp_flush_reg nbio_v7_0_hdp_flush_reg; |