[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20240916104325.1532-1-m.masimov@maxima.ru>
Date: Mon, 16 Sep 2024 13:43:23 +0300
From: Murad Masimov <m.masimov@...ima.ru>
To: <stable@...r.kernel.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>
CC: Murad Masimov <m.masimov@...ima.ru>, Harry Wentland
<harry.wentland@....com>, Leo Li <sunpeng.li@....com>, Rodrigo Siqueira
<Rodrigo.Siqueira@....com>, Alex Deucher <alexander.deucher@....com>,
Christian König <christian.koenig@....com>, "Pan, Xinhui"
<Xinhui.Pan@....com>, David Airlie <airlied@...il.com>, Daniel Vetter
<daniel@...ll.ch>, Alvin Lee <alvin.lee2@....com>, Sasha Levin
<sashal@...nel.org>, Chaitanya Dhere <chaitanya.dhere@....com>, Tom Chung
<chiahsuan.chung@....com>, Sohaib Nadeem <sohaib.nadeem@....com>, Hersen Wu
<hersenxs.wu@....com>, Wenjing Liu <wenjing.liu@....com>,
<amd-gfx@...ts.freedesktop.org>, <dri-devel@...ts.freedesktop.org>,
<linux-kernel@...r.kernel.org>, <lvc-project@...uxtesting.org>, Daniel
Wheeler <daniel.wheeler@....com>, Rodrigo Siqueira
<rodrigo.siqueira@....com>, Samson Tam <samson.tam@....com>
Subject: [PATCH 6.1] drm/amd/display: Fix subvp+drr logic errors
From: Alvin Lee <alvin.lee2@....com>
commit 8a0f02b7beed7b2b768dbdf3b79960de68f460c5 upstream.
[Why]
There is some logic error where the wrong variable was used to check for
OTG_MASTER and DPP_PIPE.
[How]
Add booleans to confirm that the expected pipes were found before
validating schedulability.
Tested-by: Daniel Wheeler <daniel.wheeler@....com>
Acked-by: Rodrigo Siqueira <rodrigo.siqueira@....com>
Reviewed-by: Samson Tam <samson.tam@....com>
Reviewed-by: Chaitanya Dhere <chaitanya.dhere@....com>
Signed-off-by: Alvin Lee <alvin.lee2@....com>
Signed-off-by: Alex Deucher <alexander.deucher@....com>
[m.masimov@...ima.ru: In order to adapt this patch to branch 6.1
only changes related to finding the SubVP pipe were applied
as in 6.1 drr_pipe is passed as a function argument.]
Signed-off-by: Murad Masimov <m.masimov@...ima.ru>
---
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
index 85e0d1c2a908..4b0719392d28 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
@@ -862,6 +862,7 @@ static bool subvp_drr_schedulable(struct dc *dc, struct dc_state *context, struc
int16_t stretched_drr_us = 0;
int16_t drr_stretched_vblank_us = 0;
int16_t max_vblank_mallregion = 0;
+ bool subvp_found = false;
// Find SubVP pipe
for (i = 0; i < dc->res_pool->pipe_count; i++) {
@@ -873,10 +874,15 @@ static bool subvp_drr_schedulable(struct dc *dc, struct dc_state *context, struc
continue;
// Find the SubVP pipe
- if (pipe->stream->mall_stream_config.type == SUBVP_MAIN)
+ if (pipe->stream->mall_stream_config.type == SUBVP_MAIN) {
+ subvp_found = true;
break;
+ }
}
+ if (!subvp_found)
+ return false;
+
main_timing = &pipe->stream->timing;
phantom_timing = &pipe->stream->mall_stream_config.paired_stream->timing;
drr_timing = &drr_pipe->stream->timing;
--
2.39.2
Powered by blists - more mailing lists