drm/amdgpu: Add flags to distinguish vf/pf/pt mode
authorAsad Kamal <asad.kamal@amd.com>
Mon, 27 May 2024 04:15:15 +0000 (12:15 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 13 Feb 2025 02:04:08 +0000 (21:04 -0500)
Add extra flag definition for ids_flag field to distinguish
between vf/pf/pt modes

v2: Updated kms driver minor version & removed pf check as default is 0
v3: Fix up version (Alex)
v4: rebase (Alex)

Proposed userspace:
https://github.com/ROCm/amdsmi/commit/e663bed7d6b3df79f5959e73981749b1f22ec698

Signed-off-by: Asad Kamal <asad.kamal@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
include/uapi/drm/amdgpu_drm.h

index f52f674477eb79510c291a74f47f9355bcfe0be7..1819166cb4cf425aea77df1f0f4032251485e01c 100644 (file)
  * - 3.59.0 - Cleared VRAM
  * - 3.60.0 - Add AMDGPU_TILING_GFX12_DCC_WRITE_COMPRESS_DISABLE (Vulkan requirement)
  * - 3.61.0 - Contains fix for RV/PCO compute queues
+ * - 3.62.0 - Add AMDGPU_IDS_FLAGS_MODE_PF, AMDGPU_IDS_FLAGS_MODE_VF & AMDGPU_IDS_FLAGS_MODE_PT
  */
 #define KMS_DRIVER_MAJOR       3
-#define KMS_DRIVER_MINOR       61
+#define KMS_DRIVER_MINOR       62
 #define KMS_DRIVER_PATCHLEVEL  0
 
 /*
index 98528ee94c15a13e72ff4c0fb45a9519d504377c..05c73bf7541ceb4eb84cc61b6412924a823f3f36 100644 (file)
@@ -888,6 +888,15 @@ out:
                if (adev->gfx.config.ta_cntl2_truncate_coord_mode)
                        dev_info->ids_flags |= AMDGPU_IDS_FLAGS_CONFORMANT_TRUNC_COORD;
 
+               if (amdgpu_passthrough(adev))
+                       dev_info->ids_flags |= (AMDGPU_IDS_FLAGS_MODE_PT <<
+                                               AMDGPU_IDS_FLAGS_MODE_SHIFT) &
+                                               AMDGPU_IDS_FLAGS_MODE_MASK;
+               else if (amdgpu_sriov_vf(adev))
+                       dev_info->ids_flags |= (AMDGPU_IDS_FLAGS_MODE_VF <<
+                                               AMDGPU_IDS_FLAGS_MODE_SHIFT) &
+                                               AMDGPU_IDS_FLAGS_MODE_MASK;
+
                vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE;
                vm_size -= AMDGPU_VA_RESERVED_TOP;
 
index aaa4f3bc688b57fcdc57635ad96ec10989076299..25d5c6e90a995996b5384850dfdd7109eadd5a0f 100644 (file)
@@ -763,6 +763,16 @@ struct drm_amdgpu_cs_chunk_cp_gfx_shadow {
 #define AMDGPU_IDS_FLAGS_TMZ            0x4
 #define AMDGPU_IDS_FLAGS_CONFORMANT_TRUNC_COORD 0x8
 
+/*
+ *  Query h/w info: Flag identifying VF/PF/PT mode
+ *
+ */
+#define AMDGPU_IDS_FLAGS_MODE_MASK      0x300
+#define AMDGPU_IDS_FLAGS_MODE_SHIFT     0x8
+#define AMDGPU_IDS_FLAGS_MODE_PF        0x0
+#define AMDGPU_IDS_FLAGS_MODE_VF        0x1
+#define AMDGPU_IDS_FLAGS_MODE_PT        0x2
+
 /* indicate if acceleration can be working */
 #define AMDGPU_INFO_ACCEL_WORKING              0x00
 /* get the crtc_id from the mode object id? */