diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4060-drm-amd-display-Add-output-bitrate-to-DML-calculatio.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4060-drm-amd-display-Add-output-bitrate-to-DML-calculatio.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4060-drm-amd-display-Add-output-bitrate-to-DML-calculatio.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4060-drm-amd-display-Add-output-bitrate-to-DML-calculatio.patch new file mode 100644 index 00000000..9853e1b2 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4060-drm-amd-display-Add-output-bitrate-to-DML-calculatio.patch @@ -0,0 +1,71 @@ +From 926638ed62a64e7537cc42787796af8861cd4708 Mon Sep 17 00:00:00 2001 +From: Nikola Cornij <nikola.cornij@amd.com> +Date: Thu, 12 Sep 2019 17:15:16 -0400 +Subject: [PATCH 4060/4256] drm/amd/display: Add output bitrate to DML + calculations + +[why] +Output bitrate was mistakenly left out, causing corruption on some +DSC low resolution (such as 800x600) modes. + +Signed-off-by: Nikola Cornij <nikola.cornij@amd.com> +Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +--- + drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 5 ++++- + drivers/gpu/drm/amd/display/dc/dml/display_mode_structs.h | 2 +- + drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c | 2 ++ + 3 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +index 2f1dc0277e48..5deb8deece0c 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +@@ -1923,7 +1923,7 @@ int dcn20_populate_dml_pipes_from_context( + break; + case PIXEL_ENCODING_YCBCR420: + pipes[pipe_cnt].dout.output_format = dm_420; +- pipes[pipe_cnt].dout.output_bpp = (output_bpc * 3) / 2; ++ pipes[pipe_cnt].dout.output_bpp = (output_bpc * 3.0) / 2; + break; + case PIXEL_ENCODING_YCBCR422: + if (true) /* todo */ +@@ -1937,6 +1937,9 @@ int dcn20_populate_dml_pipes_from_context( + pipes[pipe_cnt].dout.output_bpp = output_bpc * 3; + } + ++ if (res_ctx->pipe_ctx[i].stream->timing.flags.DSC) ++ pipes[pipe_cnt].dout.output_bpp = res_ctx->pipe_ctx[i].stream->timing.dsc_cfg.bits_per_pixel / 16.0; ++ + /* todo: default max for now, until there is logic reflecting this in dc*/ + pipes[pipe_cnt].dout.output_bpc = 12; + /* +diff --git a/drivers/gpu/drm/amd/display/dc/dml/display_mode_structs.h b/drivers/gpu/drm/amd/display/dc/dml/display_mode_structs.h +index f4c1ef9046bf..83f84cdd4055 100644 +--- a/drivers/gpu/drm/amd/display/dc/dml/display_mode_structs.h ++++ b/drivers/gpu/drm/amd/display/dc/dml/display_mode_structs.h +@@ -269,7 +269,7 @@ struct writeback_st { + + struct _vcs_dpi_display_output_params_st { + int dp_lanes; +- int output_bpp; ++ double output_bpp; + int dsc_enable; + int wb_enable; + int num_active_wb; +diff --git a/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c b/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c +index 65cf4edddaff..362dc6ea98ae 100644 +--- a/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c ++++ b/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c +@@ -434,6 +434,8 @@ static void fetch_pipe_params(struct display_mode_lib *mode_lib) + dst->odm_combine; + mode_lib->vba.OutputFormat[mode_lib->vba.NumberOfActivePlanes] = + (enum output_format_class) (dout->output_format); ++ mode_lib->vba.OutputBpp[mode_lib->vba.NumberOfActivePlanes] = ++ dout->output_bpp; + mode_lib->vba.Output[mode_lib->vba.NumberOfActivePlanes] = + (enum output_encoder_class) (dout->output_type); + +-- +2.17.1 + |