Skip to content

Commit 9d2d182

Browse files
Jie1zhangalexdeucher
authored andcommitted
drm/amdgpu: Differentiate between Raven2 and Raven/Picasso according to revision id
Due to the raven2 and raven/picasso maybe have the same GC_HWIP version. So differentiate them by revision id. Signed-off-by: shanshengwang <[email protected]> Signed-off-by: Jesse Zhang <[email protected]> Acked-by: Evan Quan <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 11fbdda commit 9d2d182

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4003,30 +4003,25 @@ static uint64_t gfx_v9_0_get_gpu_clock_counter(struct amdgpu_device *adev)
40034003
clock = clock_lo | (clock_hi << 32ULL);
40044004
break;
40054005
case IP_VERSION(9, 1, 0):
4006+
case IP_VERSION(9, 2, 2):
40064007
preempt_disable();
4007-
clock_hi = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven);
4008-
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven);
4009-
hi_check = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven);
4010-
/* The PWR TSC clock frequency is 100MHz, which sets 32-bit carry over
4011-
* roughly every 42 seconds.
4012-
*/
4013-
if (hi_check != clock_hi) {
4008+
if (adev->rev_id >= 0x8) {
4009+
clock_hi = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven2);
4010+
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven2);
4011+
hi_check = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven2);
4012+
} else {
4013+
clock_hi = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven);
40144014
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven);
4015-
clock_hi = hi_check;
4015+
hi_check = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven);
40164016
}
4017-
preempt_enable();
4018-
clock = clock_lo | (clock_hi << 32ULL);
4019-
break;
4020-
case IP_VERSION(9, 2, 2):
4021-
preempt_disable();
4022-
clock_hi = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven2);
4023-
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven2);
4024-
hi_check = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven2);
40254017
/* The PWR TSC clock frequency is 100MHz, which sets 32-bit carry over
4026-
* roughly every 42 seconds.
4027-
*/
4018+
* roughly every 42 seconds.
4019+
*/
40284020
if (hi_check != clock_hi) {
4029-
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven2);
4021+
if (adev->rev_id >= 0x8)
4022+
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven2);
4023+
else
4024+
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven);
40304025
clock_hi = hi_check;
40314026
}
40324027
preempt_enable();

0 commit comments

Comments
 (0)