drm/amdgpu: Add map of logical to physical inst
authorLijo Lazar <lijo.lazar@amd.com>
Wed, 29 Jun 2022 09:29:04 +0000 (14:59 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:45:42 +0000 (09:45 -0400)
Add a map for logical to physical instances of an IP. For ex: on some device
configurations, the first logical XCC may not be the first physical XCC.
Software may continue to access in logical IP instance order. The map
provides a convenient way to get to the actual physical instance.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Le Ma <Le.Ma@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu.h

index 729d5eedae49f83f6a9d9e05da22f0845555d385..32112db5c841ed5b7705dbd0e02c481650c41abe 100644 (file)
@@ -669,6 +669,15 @@ enum amd_hw_ip_block_type {
 #define IP_VERSION_MIN(ver) (((ver) >> 8) & 0xFF)
 #define IP_VERSION_REV(ver) ((ver) & 0xFF)
 
+struct amdgpu_ip_map_info {
+       /* Map of logical to actual dev instances */
+       uint32_t                dev_inst[MAX_HWIP][HWIP_MAX_INSTANCE];
+       int8_t (*logical_to_dev_inst)(struct amdgpu_device *adev,
+                                     enum amd_hw_ip_block_type block,
+                                     int8_t inst);
+
+};
+
 struct amd_powerplay {
        void *pp_handle;
        const struct amd_pm_funcs *pp_funcs;
@@ -968,6 +977,7 @@ struct amdgpu_device {
 
        /* soc15 register offset based on ip, instance and  segment */
        uint32_t                *reg_offset[MAX_HWIP][HWIP_MAX_INSTANCE];
+       struct amdgpu_ip_map_info       ip_map;
 
        /* delayed work_func for deferring clockgating during resume */
        struct delayed_work     delayed_init_work;