v1:
1. Unified amdgpu ip block name print with format
   "{ip_type}_v{major}_{minor}_{rev}"

2. Avoid IP block name conflicts for SMU/PSP ip block

v2:
Update IP block print format to keep legacy IP block name (Alex)
"{ip_type}_v{major}_{minor}_{rev} ({funcs->name})"

Signed-off-by: Yang Wang <kevinyang.w...@amd.com>
Reviewed-by: Asad Kamal <asad.ka...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 36 ++++++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index e117494e8054..d869226b2fa9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2447,6 +2447,33 @@ int amdgpu_device_ip_block_version_cmp(struct 
amdgpu_device *adev,
        return 1;
 }
 
+static const char *ip_block_names[] = {
+       [AMD_IP_BLOCK_TYPE_COMMON] =  "common",
+       [AMD_IP_BLOCK_TYPE_GMC] = "gmc",
+       [AMD_IP_BLOCK_TYPE_IH] = "ih",
+       [AMD_IP_BLOCK_TYPE_SMC] = "smu",
+       [AMD_IP_BLOCK_TYPE_PSP] = "psp",
+       [AMD_IP_BLOCK_TYPE_DCE] = "dce",
+       [AMD_IP_BLOCK_TYPE_GFX] = "gfx",
+       [AMD_IP_BLOCK_TYPE_SDMA] = "sdma",
+       [AMD_IP_BLOCK_TYPE_UVD] = "uvd",
+       [AMD_IP_BLOCK_TYPE_VCE] = "vce",
+       [AMD_IP_BLOCK_TYPE_ACP] = "acp",
+       [AMD_IP_BLOCK_TYPE_VCN] = "vcn",
+       [AMD_IP_BLOCK_TYPE_MES] = "mes",
+       [AMD_IP_BLOCK_TYPE_JPEG] = "jpeg",
+       [AMD_IP_BLOCK_TYPE_VPE] = "vpe",
+       [AMD_IP_BLOCK_TYPE_UMSCH_MM] = "umsch_mm",
+       [AMD_IP_BLOCK_TYPE_ISP] = "isp",
+};
+
+static const char *ip_block_name(struct amdgpu_device *adev, enum 
amd_ip_block_type type)
+{
+       int idx = (int)type;
+
+       return idx < ARRAY_SIZE(ip_block_names) ? ip_block_names[idx] : 
"unknown";
+}
+
 /**
  * amdgpu_device_ip_block_add
  *
@@ -2475,8 +2502,13 @@ int amdgpu_device_ip_block_add(struct amdgpu_device 
*adev,
                break;
        }
 
-       dev_info(adev->dev, "detected ip block number %d <%s>\n",
-                adev->num_ip_blocks, ip_block_version->funcs->name);
+       dev_info(adev->dev, "detected ip block number %d <%s_v%d_%d_%d> (%s)\n",
+                adev->num_ip_blocks,
+                ip_block_name(adev, ip_block_version->type),
+                ip_block_version->major,
+                ip_block_version->minor,
+                ip_block_version->rev,
+                ip_block_version->funcs->name);
 
        adev->ip_blocks[adev->num_ip_blocks].adev = adev;
 
-- 
2.34.1

Reply via email to