@@ -4005,25 +4005,30 @@ static uint64_t gfx_v9_0_get_gpu_clock_counter(struct amdgpu_device *adev)
4005
4005
clock = clock_lo | (clock_hi << 32ULL );
4006
4006
break ;
4007
4007
case IP_VERSION (9 , 1 , 0 ):
4008
- case IP_VERSION (9 , 2 , 2 ):
4009
4008
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 ) {
4016
4016
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 ;
4018
4018
}
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 );
4019
4027
/* 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
+ */
4022
4030
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 );
4027
4032
clock_hi = hi_check ;
4028
4033
}
4029
4034
preempt_enable ();
0 commit comments