case IP_VERSION(4, 4, 2):
        case IP_VERSION(4, 4, 4):
        case IP_VERSION(4, 4, 5):
-               /* For SDMA 4.x, use the existing DPM interface for backward compatibility */
-               r = amdgpu_dpm_reset_sdma(adev, 1 << instance_id);
+               /* For SDMA 4.x, use the existing DPM interface for backward compatibility,
+                * we need to convert the logical instance ID to physical instance ID before reset.
+                */
+               r = amdgpu_dpm_reset_sdma(adev, 1 << GET_INST(SDMA0, instance_id));
                break;
        case IP_VERSION(5, 0, 0):
        case IP_VERSION(5, 0, 1):
 /**
  * amdgpu_sdma_reset_engine - Reset a specific SDMA engine
  * @adev: Pointer to the AMDGPU device
- * @instance_id: ID of the SDMA engine instance to reset
+ * @instance_id: Logical ID of the SDMA engine instance to reset
  *
  * Returns: 0 on success, or a negative error code on failure.
  */
        /* Perform the SDMA reset for the specified instance */
        ret = amdgpu_sdma_soft_reset(adev, instance_id);
        if (ret) {
-               dev_err(adev->dev, "Failed to reset SDMA instance %u\n", instance_id);
+               dev_err(adev->dev, "Failed to reset SDMA logical instance %u\n", instance_id);
                goto exit;
        }