From: Stylon Wang <stylon.wang@amd.com>
To: <amd-gfx@lists.freedesktop.org>
Cc: stylon.wang@amd.com, Sunpeng.Li@amd.com, Harry.Wentland@amd.com,
qingqing.zhuo@amd.com, Martin Leung <martin.leung@amd.com>,
Rodrigo.Siqueira@amd.com, roman.li@amd.com,
Wenjing Liu <wenjing.liu@amd.com>,
solomon.chiu@amd.com, Aurabindo.Pillai@amd.com,
wayne.lin@amd.com, Bhawanpreet.Lakha@amd.com,
agustin.gutierrez@amd.com, pavle.kotarac@amd.com
Subject: [PATCH 07/15] drm/amd/display: fix incorrect stream_res allocation for older ASIC
Date: Wed, 9 Aug 2023 23:04:57 +0800 [thread overview]
Message-ID: <20230809150620.1071566-8-stylon.wang@amd.com> (raw)
In-Reply-To: <20230809150620.1071566-1-stylon.wang@amd.com>
From: Wenjing Liu <wenjing.liu@amd.com>
[why]
There is a recent work for developing a new pipe resource allocation
policy used for new ASIC. The new code change needs to modify asic
independent pipe resource allocation flow and hook up the new allocation
policy in asic dependent layer. Unfortunately this change revealed a
hidden bug in the old pipe resource allocation sequence used for older
asics. In the older version of acquiring pipe for layer, we are always
assigning otg master's opp and tg to the newly allocated secondary dpp
pipe. This logic is incorrect when the secodnary dpp
pipe is connected to a secondary opp head pipe in ODM combine
configuration. Before the recent change, we will overwrite this wrong
assignement in asic independent layer again. This covers up the issue.
With the recent change, we will no longer cover up this in upper layer
and therefore causes wrong tg and opp assignement to the secondary
dpp pipe connected to a secondary opp head.
[how]
Always assign tg and opp from its own opp head instead of otg master.
Reviewed-by: Martin Leung <martin.leung@amd.com>
Acked-by: Stylon Wang <stylon.wang@amd.com>
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
---
.../drm/amd/display/dc/dcn20/dcn20_resource.c | 27 +++++++++----------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
index dfecb9602f49..efa600e46194 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
@@ -2151,28 +2151,27 @@ struct pipe_ctx *dcn20_acquire_free_pipe_for_layer(
const struct dc_state *cur_ctx,
struct dc_state *new_ctx,
const struct resource_pool *pool,
- const struct pipe_ctx *opp_head_pipe)
+ const struct pipe_ctx *opp_head)
{
struct resource_context *res_ctx = &new_ctx->res_ctx;
- struct pipe_ctx *head_pipe = resource_get_head_pipe_for_stream(res_ctx, opp_head_pipe->stream);
- struct pipe_ctx *idle_pipe = find_free_secondary_pipe_legacy(res_ctx, pool, head_pipe);
+ struct pipe_ctx *otg_master = resource_get_head_pipe_for_stream(res_ctx, opp_head->stream);
+ struct pipe_ctx *sec_dpp_pipe = find_free_secondary_pipe_legacy(res_ctx, pool, otg_master);
- if (!head_pipe)
- ASSERT(0);
+ ASSERT(otg_master);
- if (!idle_pipe)
+ if (!sec_dpp_pipe)
return NULL;
- idle_pipe->stream = head_pipe->stream;
- idle_pipe->stream_res.tg = head_pipe->stream_res.tg;
- idle_pipe->stream_res.opp = head_pipe->stream_res.opp;
+ sec_dpp_pipe->stream = opp_head->stream;
+ sec_dpp_pipe->stream_res.tg = opp_head->stream_res.tg;
+ sec_dpp_pipe->stream_res.opp = opp_head->stream_res.opp;
- idle_pipe->plane_res.hubp = pool->hubps[idle_pipe->pipe_idx];
- idle_pipe->plane_res.ipp = pool->ipps[idle_pipe->pipe_idx];
- idle_pipe->plane_res.dpp = pool->dpps[idle_pipe->pipe_idx];
- idle_pipe->plane_res.mpcc_inst = pool->dpps[idle_pipe->pipe_idx]->inst;
+ sec_dpp_pipe->plane_res.hubp = pool->hubps[sec_dpp_pipe->pipe_idx];
+ sec_dpp_pipe->plane_res.ipp = pool->ipps[sec_dpp_pipe->pipe_idx];
+ sec_dpp_pipe->plane_res.dpp = pool->dpps[sec_dpp_pipe->pipe_idx];
+ sec_dpp_pipe->plane_res.mpcc_inst = pool->dpps[sec_dpp_pipe->pipe_idx]->inst;
- return idle_pipe;
+ return sec_dpp_pipe;
}
bool dcn20_get_dcc_compression_cap(const struct dc *dc,
--
2.41.0
next prev parent reply other threads:[~2023-08-09 15:08 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-09 15:04 [PATCH 00/15] DC Patches August 11, 2023 Stylon Wang
2023-08-09 15:04 ` [PATCH 01/15] drm/amd/display: Support Compliance Test Pattern Generation with DP2 Retimer Stylon Wang
2023-08-09 15:04 ` [PATCH 02/15] drm/amd/display: disable clock gating logic reversed bug fix Stylon Wang
2023-08-09 15:04 ` [PATCH 03/15] drm/amd/display: Enable 8k60hz mode on single display Stylon Wang
2023-08-09 15:04 ` [PATCH 04/15] drm/amd/display: Gamut remap only changes missed Stylon Wang
2023-08-09 15:04 ` [PATCH 05/15] drm/amd/display: Enable subvp high refresh up to 175hz Stylon Wang
2023-08-09 15:04 ` [PATCH 06/15] drm/amd/display: PMFW to wait for DMCUB ack for FPO cases Stylon Wang
2023-08-09 15:04 ` Stylon Wang [this message]
2023-08-09 15:04 ` [PATCH 08/15] drm/amd/display: Adjust the resume flow Stylon Wang
2023-08-09 15:04 ` [PATCH 09/15] drm/amd/display: avoid crash and add z8_marks related in dml Stylon Wang
2023-08-09 15:05 ` [PATCH 10/15] drm/amd/display: implement pipe type definition and adding accessors Stylon Wang
2023-08-09 15:05 ` [PATCH 11/15] drm/amd/display: Add some missing register definitions Stylon Wang
2023-08-09 15:05 ` [PATCH 12/15] drm/amd/display: enable low power mode for VGA memory Stylon Wang
2023-08-09 15:05 ` [PATCH 13/15] drm/amd/display: Remove freesync video mode amdgpu parameter Stylon Wang
2023-08-09 17:28 ` Pillai, Aurabindo
2023-08-09 15:05 ` [PATCH 14/15] drm/amd/display: [FW Promotion] Release 0.0.179.0 Stylon Wang
2023-08-09 15:05 ` [PATCH 15/15] drm/amd/display: Promote DAL to 3.2.247 Stylon Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230809150620.1071566-8-stylon.wang@amd.com \
--to=stylon.wang@amd.com \
--cc=Aurabindo.Pillai@amd.com \
--cc=Bhawanpreet.Lakha@amd.com \
--cc=Harry.Wentland@amd.com \
--cc=Rodrigo.Siqueira@amd.com \
--cc=Sunpeng.Li@amd.com \
--cc=agustin.gutierrez@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=martin.leung@amd.com \
--cc=pavle.kotarac@amd.com \
--cc=qingqing.zhuo@amd.com \
--cc=roman.li@amd.com \
--cc=solomon.chiu@amd.com \
--cc=wayne.lin@amd.com \
--cc=wenjing.liu@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox