drm/amdgpu: Set memory partitions to 1 for SRIOV.
authorGavin Wan <Gavin.Wan@amd.com>
Mon, 10 Apr 2023 19:04:26 +0000 (15:04 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:58:06 +0000 (09:58 -0400)
For SRIOV, the memory partitions are set on host drover. Each VF only
has one memory partition. We need set the memory partitions to 1 on
guest driver for SRIOV.

V2: sqaush in fix ("drm/amdgpu: Fix memory range info of GC 9.4.3 VFs")

Signed-off-by: Gavin Wan <Gavin.Wan@amd.com>
Acked-by: Zhigang Luo <zhigang.luo@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c

index 58bcd1e..95c3253 100644 (file)
@@ -1346,6 +1346,9 @@ gmc_v9_0_get_memory_partition(struct amdgpu_device *adev, u32 *supp_modes)
 static enum amdgpu_memory_partition
 gmc_v9_0_query_memory_partition(struct amdgpu_device *adev)
 {
+       if (amdgpu_sriov_vf(adev))
+               return AMDGPU_NPS1_PARTITION_MODE;
+
        return gmc_v9_0_get_memory_partition(adev, NULL);
 }
 
@@ -1897,7 +1900,10 @@ static int gmc_v9_0_init_mem_ranges(struct amdgpu_device *adev)
        else
                gmc_v9_0_init_sw_mem_ranges(adev, adev->gmc.mem_partitions);
 
-       valid = gmc_v9_0_validate_partition_info(adev);
+       if (amdgpu_sriov_vf(adev))
+               valid = true;
+       else
+               valid = gmc_v9_0_validate_partition_info(adev);
        if (!valid) {
                /* TODO: handle invalid case */
                dev_WARN(adev->dev,