From: Lijo Lazar <[email protected]>

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 <[email protected]>
Reviewed-by: Hawking Zhang <[email protected]>
Reviewed-by: Le Ma <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 5ad7ac75cc0f..888652d5eb9e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -690,6 +690,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;
@@ -989,6 +998,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;
-- 
2.39.2

Reply via email to