drm/amd/display: Show the DCN/DCE version in the log
authorRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Tue, 25 Apr 2023 20:42:29 +0000 (14:42 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:34:09 +0000 (09:34 -0400)
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 <Hamza.Mahfooz@amd.com>
Acked-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/dc/dc_helper.c
drivers/gpu/drm/amd/display/dc/dm_services.h

index e278474..e1c4db6 100644 (file)
@@ -1667,7 +1667,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;
index a219482..3db7a2e 100644 (file)
@@ -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";
+       }
+}
index d33d595..d0eed3b 100644 (file)
@@ -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__ */