drm/amd/display: Fix VBA chroma calculation for pipe splitting
[Why] DML failures occur for 420 modes with dynamic pipe splitting enabled because the ChromaViewport exceeds the ChromaSurfaceWidth. This is caused by adding the viewport_width instead of the viewport_width_c. This similarly occurs for rotated modes due to the use of viewport_height instead of viewport_height_c. [How] Correct the calculations. Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
c0838cbee2
commit
92bfc4a196
|
@ -623,14 +623,14 @@ static void fetch_pipe_params(struct display_mode_lib *mode_lib)
|
|||
mode_lib->vba.ViewportWidth[mode_lib->vba.NumberOfActivePlanes] +=
|
||||
src_k->viewport_width;
|
||||
mode_lib->vba.ViewportWidthChroma[mode_lib->vba.NumberOfActivePlanes] +=
|
||||
src_k->viewport_width;
|
||||
src_k->viewport_width_c;
|
||||
mode_lib->vba.ScalerRecoutWidth[mode_lib->vba.NumberOfActivePlanes] +=
|
||||
dst_k->recout_width;
|
||||
} else {
|
||||
mode_lib->vba.ViewportHeight[mode_lib->vba.NumberOfActivePlanes] +=
|
||||
src_k->viewport_height;
|
||||
mode_lib->vba.ViewportHeightChroma[mode_lib->vba.NumberOfActivePlanes] +=
|
||||
src_k->viewport_height;
|
||||
src_k->viewport_height_c;
|
||||
}
|
||||
mode_lib->vba.NumberOfDSCSlices[mode_lib->vba.NumberOfActivePlanes] +=
|
||||
dout_k->dsc_slices;
|
||||
|
|
Loading…
Reference in New Issue