Checks the partition mode and returns an error for an invalid mode.

Signed-off-by: Jesse Zhang <jesse.zh...@amd.com>
Suggested-by:  Lijo Lazar <lijo.la...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c 
b/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c
index 414ea3f560a7..b1c18b7a38ad 100644
--- a/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c
+++ b/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c
@@ -501,6 +501,12 @@ static int aqua_vanjaram_switch_partition_mode(struct 
amdgpu_xcp_mgr *xcp_mgr,
 
        if (mode == AMDGPU_AUTO_COMPUTE_PARTITION_MODE) {
                mode = __aqua_vanjaram_get_auto_mode(xcp_mgr);
+               if (mode == AMDGPU_UNKNOWN_COMPUTE_PARTITION_MODE) {
+                       dev_err(adev->dev,
+                               "Invalid compute partition mode requested, 
requested: %s, available memory partitions: %d",
+                               amdgpu_gfx_compute_mode_desc(mode), 
adev->gmc.num_mem_partitions);
+                       return -EINVAL;
+               }
        } else if (!__aqua_vanjaram_is_valid_mode(xcp_mgr, mode)) {
                dev_err(adev->dev,
                        "Invalid compute partition mode requested, requested: 
%s, available memory partitions: %d",
@@ -522,6 +528,7 @@ static int aqua_vanjaram_switch_partition_mode(struct 
amdgpu_xcp_mgr *xcp_mgr,
                goto unlock;
 
        num_xcc_per_xcp = __aqua_vanjaram_get_xcc_per_xcp(xcp_mgr, mode);
        if (adev->gfx.funcs->switch_partition_mode)
                adev->gfx.funcs->switch_partition_mode(xcp_mgr->adev,
                                                       num_xcc_per_xcp);
-- 
2.25.1

Reply via email to