drm/amd: Fix the return for average power on aldebaran
authorMario Limonciello <mario.limonciello@amd.com>
Thu, 10 Aug 2023 10:31:59 +0000 (05:31 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Aug 2023 22:08:29 +0000 (18:08 -0400)
Aldebaran can only return average socket power for the first die.
The other dies return 0.  Instead of returning a bad value, return
-EOPNOTSUPP so that the attribute will be hidden.

Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c

index 0dbb1a1..1341363 100644 (file)
@@ -625,9 +625,10 @@ static int aldebaran_get_smu_metrics_data(struct smu_context *smu,
                break;
        case METRICS_AVERAGE_SOCKETPOWER:
                /* Valid power data is available only from primary die */
-               *value = aldebaran_is_primary(smu) ?
-                                metrics->AverageSocketPower << 8 :
-                                0;
+               if (aldebaran_is_primary(smu))
+                       *value = metrics->AverageSocketPower << 8;
+               else
+                       ret = -EOPNOTSUPP;
                break;
        case METRICS_TEMPERATURE_EDGE:
                *value = metrics->TemperatureEdge *