aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/soc15.c
diff options
context:
space:
mode:
authorEvan Quan <evan.quan@amd.com>2017-07-03 21:23:01 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-07-14 11:06:24 -0400
commit2f11fb02873890aca30deb9ca4b65b841c487bd9 (patch)
tree813560bcf51cb486adf0b0d597f88dfb6de24097 /drivers/gpu/drm/amd/amdgpu/soc15.c
parent16abb5d206499d8cb84103c758d45afbfecf76c0 (diff)
drm/amd/powerplay: added soc15 support for new se_cac_idx APIs
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/soc15.c')
-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 ca9fa3fe788d..0d9a3dd302a7 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
+++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
@@ -218,6 +218,28 @@ static void soc15_gc_cac_wreg(struct amdgpu_device *adev, u32 reg, u32 v)
218 spin_unlock_irqrestore(&adev->gc_cac_idx_lock, flags); 218 spin_unlock_irqrestore(&adev->gc_cac_idx_lock, flags);
219} 219}
220 220
221static u32 soc15_se_cac_rreg(struct amdgpu_device *adev, u32 reg)
222{
223 unsigned long flags;
224 u32 r;
225
226 spin_lock_irqsave(&adev->se_cac_idx_lock, flags);
227 WREG32_SOC15(GC, 0, mmSE_CAC_IND_INDEX, (reg));
228 r = RREG32_SOC15(GC, 0, mmSE_CAC_IND_DATA);
229 spin_unlock_irqrestore(&adev->se_cac_idx_lock, flags);
230 return r;
231}
232
233static void soc15_se_cac_wreg(struct amdgpu_device *adev, u32 reg, u32 v)
234{
235 unsigned long flags;
236
237 spin_lock_irqsave(&adev->se_cac_idx_lock, flags);
238 WREG32_SOC15(GC, 0, mmSE_CAC_IND_INDEX, (reg));
239 WREG32_SOC15(GC, 0, mmSE_CAC_IND_DATA, (v));
240 spin_unlock_irqrestore(&adev->se_cac_idx_lock, flags);
241}
242
221static u32 soc15_get_config_memsize(struct amdgpu_device *adev) 243static u32 soc15_get_config_memsize(struct amdgpu_device *adev)
222{ 244{
223 if (adev->flags & AMD_IS_APU) 245 if (adev->flags & AMD_IS_APU)
@@ -579,6 +601,8 @@ static int soc15_common_early_init(void *handle)
579 adev->didt_wreg = &soc15_didt_wreg; 601 adev->didt_wreg = &soc15_didt_wreg;
580 adev->gc_cac_rreg = &soc15_gc_cac_rreg; 602 adev->gc_cac_rreg = &soc15_gc_cac_rreg;
581 adev->gc_cac_wreg = &soc15_gc_cac_wreg; 603 adev->gc_cac_wreg = &soc15_gc_cac_wreg;
604 adev->se_cac_rreg = &soc15_se_cac_rreg;
605 adev->se_cac_wreg = &soc15_se_cac_wreg;
582 606
583 adev->asic_funcs = &soc15_asic_funcs; 607 adev->asic_funcs = &soc15_asic_funcs;
584 608