mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 12:55:24 -04:00
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> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
c59802313e
commit
486cc0ee55
@@ -1894,7 +1894,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 */
|
||||
@@ -1908,6 +1908,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;
|
||||
/*
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user