drm/amdgpu: skip the invalid workload type
authorPerry Yuan <perry.yuan@amd.com>
Thu, 23 Feb 2023 07:10:45 +0000 (15:10 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 7 Mar 2023 19:22:39 +0000 (14:22 -0500)
If some invalid workload types exposed by the power profile sysfs node,
it will be failed to set the unsuported profiles.
So we can skip to show the invalid workload type in the profiles list to
avoid that failure happen.

Acked-by: Kenneth Feng <kenneth.feng@amd.com>
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Perry Yuan <perry.yuan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c

index 27448ffe60a43950591badc8a16cbc38ad214fd1..e9766fe5656e6ef840123bf13fa64db3e7265fe6 100644 (file)
@@ -1587,7 +1587,9 @@ static int smu_v13_0_0_get_power_profile_mode(struct smu_context *smu,
                workload_type = smu_cmn_to_asic_specific_index(smu,
                                                               CMN2ASIC_MAPPING_WORKLOAD,
                                                               i);
-               if (workload_type < 0)
+               if (workload_type == -ENOTSUPP)
+                       continue;
+               else if (workload_type < 0)
                        return -EINVAL;
 
                result = smu_cmn_update_table(smu,
index 9e1967d8049e3a02db79a68563810f713b3292f4..1b2c82449f207e078d8ceb6a8f611bb146db0afd 100644 (file)
@@ -1479,7 +1479,9 @@ static int smu_v13_0_7_get_power_profile_mode(struct smu_context *smu, char *buf
                workload_type = smu_cmn_to_asic_specific_index(smu,
                                                               CMN2ASIC_MAPPING_WORKLOAD,
                                                               i);
-               if (workload_type < 0) {
+               if (workload_type == -ENOTSUPP)
+                       continue;
+               else if (workload_type < 0) {
                        result = -EINVAL;
                        goto out;
                }