drm/amd/display: allow 18 bit dp output on DCN3
authorDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Tue, 5 May 2020 18:32:33 +0000 (14:32 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 30 Oct 2020 04:59:49 +0000 (00:59 -0400)
We need this to pass dp compliance.

Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: Chris Park <Chris.Park@amd.com>
Reviewed-by: Nikola Cornij <nikola.cornij@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c

index d1ed2a9..d654969 100644 (file)
@@ -2020,20 +2020,6 @@ static bool dcn30_internal_validate_bw(
 
        dml_log_mode_support_params(&context->bw_ctx.dml);
 
-       /* TODO: Need to check calculated vlevel why that fails validation of below resolutions */
-       if (context->res_ctx.pipe_ctx[0].stream != NULL) {
-               if (context->res_ctx.pipe_ctx[0].stream->timing.h_addressable == 640  && context->res_ctx.pipe_ctx[0].stream->timing.v_addressable == 480)
-                       vlevel = 0;
-               if (context->res_ctx.pipe_ctx[0].stream->timing.h_addressable == 1280 && context->res_ctx.pipe_ctx[0].stream->timing.v_addressable == 800)
-                       vlevel = 0;
-               if (context->res_ctx.pipe_ctx[0].stream->timing.h_addressable == 1280 && context->res_ctx.pipe_ctx[0].stream->timing.v_addressable == 768)
-                       vlevel = 0;
-               if (context->res_ctx.pipe_ctx[0].stream->timing.h_addressable == 1280 && context->res_ctx.pipe_ctx[0].stream->timing.v_addressable == 1024)
-                       vlevel = 0;
-               if (context->res_ctx.pipe_ctx[0].stream->timing.h_addressable == 2048 && context->res_ctx.pipe_ctx[0].stream->timing.v_addressable == 1536)
-                       vlevel = 0;
-       }
-
        if (vlevel == context->bw_ctx.dml.soc.num_states)
                goto validate_fail;
 
index 9e0ae18..0f66869 100644 (file)
@@ -3628,7 +3628,7 @@ static double TruncToValidBPP(
                        }
                }
        } else {
-               if (!((DSCEnable == false && (DesiredBPP == NonDSCBPP2 || DesiredBPP == NonDSCBPP1 || DesiredBPP == NonDSCBPP0)) ||
+               if (!((DSCEnable == false && (DesiredBPP == NonDSCBPP2 || DesiredBPP == NonDSCBPP1 || DesiredBPP == NonDSCBPP0 || DesiredBPP == 18)) ||
                                (DSCEnable && DesiredBPP >= MinDSCBPP && DesiredBPP <= MaxDSCBPP))) {
                        return BPP_INVALID;
                } else {