diff options
author | Evan Quan <evan.quan@amd.com> | 2017-07-03 10:37:44 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-07-14 11:06:23 -0400 |
commit | 560460f282543d484158c7760464495392f8fa4a (patch) | |
tree | 439facfe3c78ef4d09ab317045fc80db68b00468 /drivers/gpu/drm/amd/amdgpu | |
parent | 09628c3f68c6ec63c8eba324eb7fd70d46bf3eb2 (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.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 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 | ||
199 | static 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 | |||
211 | static 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 | |||
199 | static u32 soc15_get_config_memsize(struct amdgpu_device *adev) | 221 | static 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 | ||