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>
        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;
 
                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";
+       }
+}
 
 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__ */