@@ -588,21 +588,21 @@ static int sienna_cichlid_tables_init(struct smu_context *smu)
588
588
return - ENOMEM ;
589
589
}
590
590
591
- static uint32_t sienna_cichlid_get_throttler_status_locked (struct smu_context * smu )
591
+ static uint32_t sienna_cichlid_get_throttler_status_locked (struct smu_context * smu ,
592
+ bool use_metrics_v3 ,
593
+ bool use_metrics_v2 )
592
594
{
593
595
struct smu_table_context * smu_table = & smu -> smu_table ;
594
596
SmuMetricsExternal_t * metrics_ext =
595
597
(SmuMetricsExternal_t * )(smu_table -> metrics_table );
596
598
uint32_t throttler_status = 0 ;
597
599
int i ;
598
600
599
- if ((smu -> adev -> ip_versions [MP1_HWIP ][0 ] == IP_VERSION (11 , 0 , 7 )) &&
600
- (smu -> smc_fw_version >= 0x3A4900 )) {
601
+ if (use_metrics_v3 ) {
601
602
for (i = 0 ; i < THROTTLER_COUNT ; i ++ )
602
603
throttler_status |=
603
604
(metrics_ext -> SmuMetrics_V3 .ThrottlingPercentage [i ] ? 1U << i : 0 );
604
- } else if ((smu -> adev -> ip_versions [MP1_HWIP ][0 ] == IP_VERSION (11 , 0 , 7 )) &&
605
- (smu -> smc_fw_version >= 0x3A4300 )) {
605
+ } else if (use_metrics_v2 ) {
606
606
for (i = 0 ; i < THROTTLER_COUNT ; i ++ )
607
607
throttler_status |=
608
608
(metrics_ext -> SmuMetrics_V2 .ThrottlingPercentage [i ] ? 1U << i : 0 );
@@ -864,7 +864,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct smu_context *smu,
864
864
metrics -> TemperatureVrSoc ) * SMU_TEMPERATURE_UNITS_PER_CENTIGRADES ;
865
865
break ;
866
866
case METRICS_THROTTLER_STATUS :
867
- * value = sienna_cichlid_get_throttler_status_locked (smu );
867
+ * value = sienna_cichlid_get_throttler_status_locked (smu , use_metrics_v3 , use_metrics_v2 );
868
868
break ;
869
869
case METRICS_CURR_FANSPEED :
870
870
* value = use_metrics_v3 ? metrics_v3 -> CurrFanSpeed :
@@ -4017,7 +4017,7 @@ static ssize_t sienna_cichlid_get_gpu_metrics(struct smu_context *smu,
4017
4017
gpu_metrics -> current_dclk1 = use_metrics_v3 ? metrics_v3 -> CurrClock [PPCLK_DCLK_1 ] :
4018
4018
use_metrics_v2 ? metrics_v2 -> CurrClock [PPCLK_DCLK_1 ] : metrics -> CurrClock [PPCLK_DCLK_1 ];
4019
4019
4020
- gpu_metrics -> throttle_status = sienna_cichlid_get_throttler_status_locked (smu );
4020
+ gpu_metrics -> throttle_status = sienna_cichlid_get_throttler_status_locked (smu , use_metrics_v3 , use_metrics_v2 );
4021
4021
gpu_metrics -> indep_throttle_status =
4022
4022
smu_cmn_get_indep_throttler_status (gpu_metrics -> throttle_status ,
4023
4023
sienna_cichlid_throttler_map );
0 commit comments