Skip to content

Commit d511f95

Browse files
committed
Revert "drm/amdgpu: Differentiate between Raven2 and Raven/Picasso according to revision id"
This reverts commit 9d2d182. This results in inconsistent timing reported via asynchronous GPU queries. Link: https://lists.freedesktop.org/archives/amd-gfx/2023-May/093731.html Cc: [email protected] Cc: [email protected] Reviewed-by: Michel Dänzer <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 3b3ffd7 commit d511f95

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

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

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4005,25 +4005,30 @@ static uint64_t gfx_v9_0_get_gpu_clock_counter(struct amdgpu_device *adev)
40054005
clock = clock_lo | (clock_hi << 32ULL);
40064006
break;
40074007
case IP_VERSION(9, 1, 0):
4008-
case IP_VERSION(9, 2, 2):
40094008
preempt_disable();
4010-
if (adev->rev_id >= 0x8) {
4011-
clock_hi = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven2);
4012-
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven2);
4013-
hi_check = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven2);
4014-
} else {
4015-
clock_hi = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven);
4009+
clock_hi = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven);
4010+
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven);
4011+
hi_check = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven);
4012+
/* The PWR TSC clock frequency is 100MHz, which sets 32-bit carry over
4013+
* roughly every 42 seconds.
4014+
*/
4015+
if (hi_check != clock_hi) {
40164016
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven);
4017-
hi_check = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven);
4017+
clock_hi = hi_check;
40184018
}
4019+
preempt_enable();
4020+
clock = clock_lo | (clock_hi << 32ULL);
4021+
break;
4022+
case IP_VERSION(9, 2, 2):
4023+
preempt_disable();
4024+
clock_hi = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven2);
4025+
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven2);
4026+
hi_check = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_UPPER_Raven2);
40194027
/* The PWR TSC clock frequency is 100MHz, which sets 32-bit carry over
4020-
* roughly every 42 seconds.
4021-
*/
4028+
* roughly every 42 seconds.
4029+
*/
40224030
if (hi_check != clock_hi) {
4023-
if (adev->rev_id >= 0x8)
4024-
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven2);
4025-
else
4026-
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven);
4031+
clock_lo = RREG32_SOC15_NO_KIQ(PWR, 0, mmGOLDEN_TSC_COUNT_LOWER_Raven2);
40274032
clock_hi = hi_check;
40284033
}
40294034
preempt_enable();

0 commit comments

Comments
 (0)