diff options
author | Evan Quan <evan.quan@amd.com> | 2017-07-03 21:23:01 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-07-14 11:06:24 -0400 |
commit | 2f11fb02873890aca30deb9ca4b65b841c487bd9 (patch) | |
tree | 813560bcf51cb486adf0b0d597f88dfb6de24097 /drivers/gpu/drm/amd/amdgpu/soc15.c | |
parent | 16abb5d206499d8cb84103c758d45afbfecf76c0 (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.c | 24 |
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 | ||
221 | static 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 | |||
233 | static 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 | |||
221 | static u32 soc15_get_config_memsize(struct amdgpu_device *adev) | 243 | static 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 | ||