aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu
diff options
context:
space:
mode:
authorEvan Quan <evan.quan@amd.com>2017-07-03 10:37:44 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-07-14 11:06:23 -0400
commit560460f282543d484158c7760464495392f8fa4a (patch)
tree439facfe3c78ef4d09ab317045fc80db68b00468 /drivers/gpu/drm/amd/amdgpu
parent09628c3f68c6ec63c8eba324eb7fd70d46bf3eb2 (diff)
drm/amd/powerplay: added index gc cac read/write apis for vega10
Signed-off-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/soc15.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c
index 4003cb517451..ca9fa3fe788d 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
+++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
@@ -196,6 +196,28 @@ static void soc15_didt_wreg(struct amdgpu_device *adev, u32 reg, u32 v)
196 spin_unlock_irqrestore(&adev->didt_idx_lock, flags); 196 spin_unlock_irqrestore(&adev->didt_idx_lock, flags);
197} 197}
198 198
199static u32 soc15_gc_cac_rreg(struct amdgpu_device *adev, u32 reg)
200{
201 unsigned long flags;
202 u32 r;
203
204 spin_lock_irqsave(&adev->gc_cac_idx_lock, flags);
205 WREG32_SOC15(GC, 0, mmGC_CAC_IND_INDEX, (reg));
206 r = RREG32_SOC15(GC, 0, mmGC_CAC_IND_DATA);
207 spin_unlock_irqrestore(&adev->gc_cac_idx_lock, flags);
208 return r;
209}
210
211static void soc15_gc_cac_wreg(struct amdgpu_device *adev, u32 reg, u32 v)
212{
213 unsigned long flags;
214
215 spin_lock_irqsave(&adev->gc_cac_idx_lock, flags);
216 WREG32_SOC15(GC, 0, mmGC_CAC_IND_INDEX, (reg));
217 WREG32_SOC15(GC, 0, mmGC_CAC_IND_DATA, (v));
218 spin_unlock_irqrestore(&adev->gc_cac_idx_lock, flags);
219}
220
199static u32 soc15_get_config_memsize(struct amdgpu_device *adev) 221static u32 soc15_get_config_memsize(struct amdgpu_device *adev)
200{ 222{
201 if (adev->flags & AMD_IS_APU) 223 if (adev->flags & AMD_IS_APU)
@@ -555,6 +577,8 @@ static int soc15_common_early_init(void *handle)
555 adev->uvd_ctx_wreg = &soc15_uvd_ctx_wreg; 577 adev->uvd_ctx_wreg = &soc15_uvd_ctx_wreg;
556 adev->didt_rreg = &soc15_didt_rreg; 578 adev->didt_rreg = &soc15_didt_rreg;
557 adev->didt_wreg = &soc15_didt_wreg; 579 adev->didt_wreg = &soc15_didt_wreg;
580 adev->gc_cac_rreg = &soc15_gc_cac_rreg;
581 adev->gc_cac_wreg = &soc15_gc_cac_wreg;
558 582
559 adev->asic_funcs = &soc15_asic_funcs; 583 adev->asic_funcs = &soc15_asic_funcs;
560 584