From: Mukul Joshi <[email protected]>

Fix the if condition which causes dynamic repartitioning
to fail when trying to switch to DPX mode.

Signed-off-by: Mukul Joshi <[email protected]>
Reviewed-by: Amber Lin <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
index a98c38a75504..c69e4f412963 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
@@ -1138,7 +1138,11 @@ static ssize_t amdgpu_gfx_set_compute_partition(struct 
device *dev,
        if (!strncasecmp("SPX", buf, strlen("SPX"))) {
                mode = AMDGPU_SPX_PARTITION_MODE;
        } else if (!strncasecmp("DPX", buf, strlen("DPX"))) {
-               if (num_xcc != 4 || num_xcc != 8)
+               /*
+                * DPX mode needs AIDs to be in multiple of 2.
+                * Each AID connects 2 XCCs.
+                */
+               if (num_xcc%4)
                        return -EINVAL;
                mode = AMDGPU_DPX_PARTITION_MODE;
        } else if (!strncasecmp("TPX", buf, strlen("TPX"))) {
-- 
2.39.2

Reply via email to