mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 21:33:52 +00:00
drm/amd/display: Fix HSplit causing increase in DSC Slice Count
[Why?] HSplit should not affect DSC slice count. Can cause improper timings to be applied for certain modes. [How?] No longer change DSC Slice count based on HSplit. Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Dillon Varone <dillon.varone@amd.com> Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
dbc43d5fdf
commit
b8cc3e5046
2 changed files with 1 additions and 4 deletions
|
@ -4050,7 +4050,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||||
v->RequiredDPPCLK[i][j][NumberOfNonSplitPlaneOfMaximumBandwidth] = v->MinDPPCLKUsingSingleDPP[NumberOfNonSplitPlaneOfMaximumBandwidth]
|
v->RequiredDPPCLK[i][j][NumberOfNonSplitPlaneOfMaximumBandwidth] = v->MinDPPCLKUsingSingleDPP[NumberOfNonSplitPlaneOfMaximumBandwidth]
|
||||||
* (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100) / 2;
|
* (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100) / 2;
|
||||||
v->TotalNumberOfActiveDPP[i][j] = v->TotalNumberOfActiveDPP[i][j] + 1;
|
v->TotalNumberOfActiveDPP[i][j] = v->TotalNumberOfActiveDPP[i][j] + 1;
|
||||||
v->TotalNumberOfSingleDPPPlanes[i][j] = v->TotalNumberOfSingleDPPPlanes[i][j] + 1;
|
v->TotalNumberOfSingleDPPPlanes[i][j] = v->TotalNumberOfSingleDPPPlanes[i][j] - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (v->TotalNumberOfActiveDPP[i][j] > v->MaxNumDPP) {
|
if (v->TotalNumberOfActiveDPP[i][j] > v->MaxNumDPP) {
|
||||||
|
|
|
@ -599,7 +599,6 @@ static void fetch_pipe_params(struct display_mode_lib *mode_lib)
|
||||||
for (k = j + 1; k < mode_lib->vba.cache_num_pipes; ++k) {
|
for (k = j + 1; k < mode_lib->vba.cache_num_pipes; ++k) {
|
||||||
display_pipe_source_params_st *src_k = &pipes[k].pipe.src;
|
display_pipe_source_params_st *src_k = &pipes[k].pipe.src;
|
||||||
display_pipe_dest_params_st *dst_k = &pipes[k].pipe.dest;
|
display_pipe_dest_params_st *dst_k = &pipes[k].pipe.dest;
|
||||||
display_output_params_st *dout_k = &pipes[j].dout;
|
|
||||||
|
|
||||||
if (src_k->is_hsplit && !visited[k]
|
if (src_k->is_hsplit && !visited[k]
|
||||||
&& src->hsplit_grp == src_k->hsplit_grp) {
|
&& src->hsplit_grp == src_k->hsplit_grp) {
|
||||||
|
@ -620,8 +619,6 @@ static void fetch_pipe_params(struct display_mode_lib *mode_lib)
|
||||||
mode_lib->vba.ViewportHeightChroma[mode_lib->vba.NumberOfActivePlanes] +=
|
mode_lib->vba.ViewportHeightChroma[mode_lib->vba.NumberOfActivePlanes] +=
|
||||||
src_k->viewport_height_c;
|
src_k->viewport_height_c;
|
||||||
}
|
}
|
||||||
mode_lib->vba.NumberOfDSCSlices[mode_lib->vba.NumberOfActivePlanes] +=
|
|
||||||
dout_k->dsc_slices;
|
|
||||||
|
|
||||||
visited[k] = true;
|
visited[k] = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue