From: Samson Tam Date: Thu, 7 Apr 2022 16:04:42 +0000 (-0400) Subject: drm/amd/display: do not override CURSOR_REQ_MODE when SubVP is not enabled X-Git-Tag: v6.0-rc1~138^2~16^2~252 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e87b92c6af537843daf7da9235e622988bae7eae;p=thirdparty%2Fkernel%2Flinux.git drm/amd/display: do not override CURSOR_REQ_MODE when SubVP is not enabled [Why] HUBP_UNBOUNDED_REQ_MODE and CURSOR_REQ_MODE are normally set together. In hubp32_prepare_subvp_buffering() call, CURSOR_REQ_MODE is set based on whether SubVP is enabled or not. For non MPO case, both REQ_MODE registers are set to 1. But since SubVP is not enabled, then CURSOR_REQ_MODE is set to 0, overriding the previous value. [How] Do not set CURSOR_REQ_MODE to 0 if SubVP is not enabled. This will allow CURSOR_REQ_MODE to stay as 1 in the non MPO case. Add note to follow up and check case for single pipe MPO and SubVP enabled as this would cause both REQ_MODE registers to be set to 0 but SubVP enabled would override CURSOR_REQ_MODE to 1. Signed-off-by: Samson Tam Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c index 40afd33ffec65..8eed05aad54cd 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c +++ b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c @@ -555,10 +555,13 @@ void dcn32_program_mall_pipe_config(struct dc *dc, struct dc_state *context) struct hubp *hubp = pipe->plane_res.hubp; if (pipe->stream && hubp && hubp->funcs->hubp_prepare_subvp_buffering) { + /* TODO - remove setting CURSOR_REQ_MODE to 0 for legacy cases + * - need to investigate single pipe MPO + SubVP case to + * see if CURSOR_REQ_MODE will be back to 1 for SubVP + * when it should be 0 for MPO + */ if (pipe->stream->mall_stream_config.type == SUBVP_MAIN) { hubp->funcs->hubp_prepare_subvp_buffering(hubp, true); - } else { - hubp->funcs->hubp_prepare_subvp_buffering(hubp, false); } } }