drm/amd/display: clean up validation failure log spam
authorDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Mon, 18 Mar 2019 22:20:56 +0000 (18:20 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 22 Jun 2019 14:34:08 +0000 (09:34 -0500)
Currently dcn2+ validation will unconditionally print a failure
reason before validation completes. This change categorizes the
failure reason as a warning log and only prints at the end of
validation resolving false positives.

Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: Nikola Cornij <Nikola.Cornij@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c

index e2a6e80013f30f26c04f16c0e501ba72b8f8717a..49114d8232405e0aaabbf84bb5e01616f2927255 100644 (file)
@@ -1880,6 +1880,7 @@ bool dcn20_validate_bandwidth(struct dc *dc,
        int split_threshold = dc->res_pool->pipe_count / 2;
        bool avoid_split = dc->debug.pipe_split_policy != MPC_SPLIT_DYNAMIC;
        display_e2e_pipe_params_st *pipes = kzalloc(dc->res_pool->pipe_count * sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
+       DC_LOGGER_INIT(dc->ctx->logger);
 
        ASSERT(pipes);
        if (!pipes)
@@ -2183,6 +2184,8 @@ validate_pass:
        return true;
 
 validate_fail:
+       DC_LOG_WARNING("Mode Validation Warning: %s failed validation.\n",
+               dml_get_status_message(context->bw_ctx.dml.vba.ValidationStatus[context->bw_ctx.dml.vba.soc.num_states]));
        kfree(pipes);
        return false;
 }
index 3560319a5c6fd3e612ecdcab578944239e108973..7f3ea740bfe87adca7afa959d34bab7d2a3e4045 100644 (file)
@@ -73,17 +73,7 @@ unsigned int dml_get_voltage_level(
                fetch_pipe_params(mode_lib);
                PixelClockAdjustmentForProgressiveToInterlaceUnit(mode_lib);
        }
-               mode_lib->funcs.validate(mode_lib);
-
-       /* check if Mode Support Validation failed */
-       if (mode_lib->vba.VoltageLevel > mode_lib->vba.soc.num_states) {
-               /* get the validation status for highest voltage level and output console message */
-               enum dm_validation_status status = mode_lib->vba.ValidationStatus[mode_lib->vba.soc.num_states];
-               if (status != DML_FAIL_PITCH_SUPPORT) {
-                       /*AlignedYPitch is based on swizzle mode, so it is normal if some swizzle mode not supported*/
-                       dm_output_to_console("Mode Validation Error: %s failed validation.\n", dml_get_status_message(status));
-               }
-       }
+       mode_lib->funcs.validate(mode_lib);
 
        return mode_lib->vba.VoltageLevel;
 }