From: Rodrigo Siqueira <[email protected]>

Some times people send their dmesg log for debugging, and one common
task is to check the modesetting line to catch which DCN/DCE we need to
debug. This commit introduces a simple conversion from the DCN/DCE
version to a string shown in the dmesg log.

Reviewed-by: Hamza Mahfooz <[email protected]>
Acked-by: Alex Hung <[email protected]>
Signed-off-by: Rodrigo Siqueira <[email protected]>
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  3 +-
 drivers/gpu/drm/amd/display/dc/dc_helper.c    | 56 +++++++++++++++++++
 drivers/gpu/drm/amd/display/dc/dm_services.h  |  2 +
 3 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 5d850b473356..14b296e1d0f6 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1666,7 +1666,8 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
        adev->dm.dc = dc_create(&init_data);
 
        if (adev->dm.dc) {
-               DRM_INFO("Display Core initialized with v%s!\n", DC_VER);
+               DRM_INFO("Display Core initialized with v%s! %s\n", DC_VER,
+                        dce_version_to_string(adev->dm.dc->ctx->dce_version));
        } else {
                DRM_INFO("Display Core failed to initialize with v%s!\n", 
DC_VER);
                goto error;
diff --git a/drivers/gpu/drm/amd/display/dc/dc_helper.c 
b/drivers/gpu/drm/amd/display/dc/dc_helper.c
index a21948267c0f..3db7a2e11af5 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_helper.c
+++ b/drivers/gpu/drm/amd/display/dc/dc_helper.c
@@ -690,3 +690,59 @@ void reg_sequence_wait_done(const struct dc_context *ctx)
                dc_dmub_srv_wait_idle(ctx->dmub_srv);
        }
 }
+
+char *dce_version_to_string(const int version)
+{
+       switch (version) {
+       case DCE_VERSION_8_0:
+               return "DCE 8.0";
+       case DCE_VERSION_8_1:
+               return "DCE 8.1";
+       case DCE_VERSION_8_3:
+               return "DCE 8.3";
+       case DCE_VERSION_10_0:
+               return "DCE 10.0";
+       case DCE_VERSION_11_0:
+               return "DCE 11.0";
+       case DCE_VERSION_11_2:
+               return "DCE 11.2";
+       case DCE_VERSION_11_22:
+               return "DCE 11.22";
+       case DCE_VERSION_12_0:
+               return "DCE 12.0";
+       case DCE_VERSION_12_1:
+               return "DCE 12.1";
+       case DCN_VERSION_1_0:
+               return "DCN 1.0";
+       case DCN_VERSION_1_01:
+               return "DCN 1.0.1";
+       case DCN_VERSION_2_0:
+               return "DCN 2.0";
+       case DCN_VERSION_2_1:
+               return "DCN 2.1";
+       case DCN_VERSION_2_01:
+               return "DCN 2.0.1";
+       case DCN_VERSION_3_0:
+               return "DCN 3.0";
+       case DCN_VERSION_3_01:
+               return "DCN 3.0.1";
+       case DCN_VERSION_3_02:
+               return "DCN 3.0.2";
+       case DCN_VERSION_3_03:
+               return "DCN 3.0.3";
+       case DCN_VERSION_3_1:
+               return "DCN 3.1";
+       case DCN_VERSION_3_14:
+               return "DCN 3.1.4";
+       case DCN_VERSION_3_15:
+               return "DCN 3.1.5";
+       case DCN_VERSION_3_16:
+               return "DCN 3.1.6";
+       case DCN_VERSION_3_2:
+               return "DCN 3.2";
+       case DCN_VERSION_3_21:
+               return "DCN 3.2.1";
+       default:
+               return "Unknown";
+       }
+}
diff --git a/drivers/gpu/drm/amd/display/dc/dm_services.h 
b/drivers/gpu/drm/amd/display/dc/dm_services.h
index d33d595405a9..d0eed3b4771e 100644
--- a/drivers/gpu/drm/amd/display/dc/dm_services.h
+++ b/drivers/gpu/drm/amd/display/dc/dm_services.h
@@ -292,4 +292,6 @@ void dm_dtn_log_append_v(struct dc_context *ctx,
 void dm_dtn_log_end(struct dc_context *ctx,
        struct dc_log_buffer_ctx *log_ctx);
 
+char *dce_version_to_string(const int version);
+
 #endif /* __DM_SERVICES_H__ */
-- 
2.40.0

Reply via email to