From: Melissa Wen <mwen@igalia.com> To: amd-gfx@lists.freedesktop.org, Harry Wentland <harry.wentland@amd.com>, Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>, sunpeng.li@amd.com, Alex Deucher <alexander.deucher@amd.com>, dri-devel@lists.freedesktop.org, christian.koenig@amd.com, Xinhui.Pan@amd.com, airlied@gmail.com, daniel@ffwll.ch Cc: Sebastian Wick <sebastian.wick@redhat.com>, Pekka Paalanen <pekka.paalanen@collabora.com>, Shashank Sharma <Shashank.Sharma@amd.com>, Alex Hung <alex.hung@amd.com>, Xaver Hugl <xaver.hugl@gmail.com>, kernel-dev@igalia.com, Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>, Joshua Ashton <joshua@froggi.es>, sungjoon.kim@amd.com Subject: [PATCH 19/36] drm/amd/display: handle MPC 3D LUT resources for a given context Date: Tue, 23 May 2023 21:15:03 -0100 [thread overview] Message-ID: <20230523221520.3115570-20-mwen@igalia.com> (raw) In-Reply-To: <20230523221520.3115570-1-mwen@igalia.com> In the original dc_acquire_release_mpc_3dlut(), only current ctx is considered, which doesn't fit the steps for atomic checking new ctx. Therefore, create a function to handle 3D LUT resource for a given context, so that we can check resources availability in atomic_check time and handle failures properly. Signed-off-by: Melissa Wen <mwen@igalia.com> --- drivers/gpu/drm/amd/display/dc/core/dc.c | 39 ++++++++++++++++++++++++ drivers/gpu/drm/amd/display/dc/dc.h | 8 +++++ 2 files changed, 47 insertions(+) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 8e8da8c0f8cc..542a8fb26c24 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -2129,6 +2129,45 @@ bool dc_acquire_release_mpc_3dlut( return ret; } +bool +dc_acquire_release_mpc_3dlut_for_ctx(struct dc *dc, + bool acquire, + struct dc_state *state, + struct dc_stream_state *stream, + struct dc_3dlut **lut, + struct dc_transfer_func **shaper) +{ + int pipe_idx; + bool ret = false; + bool found_pipe_idx = false; + const struct resource_pool *pool = dc->res_pool; + struct resource_context *res_ctx = &state->res_ctx; + int mpcc_id = 0; + + if (pool && res_ctx) { + if (acquire) { + /*find pipe idx for the given stream*/ + for (pipe_idx = 0; pipe_idx < pool->pipe_count; pipe_idx++) { + if (res_ctx->pipe_ctx[pipe_idx].stream == stream) { + found_pipe_idx = true; + mpcc_id = res_ctx->pipe_ctx[pipe_idx].plane_res.hubp->inst; + break; + } + } + } else + found_pipe_idx = true;/*for release pipe_idx is not required*/ + + if (found_pipe_idx) { + if (acquire && pool->funcs->acquire_post_bldn_3dlut) + ret = pool->funcs->acquire_post_bldn_3dlut(res_ctx, pool, mpcc_id, lut, shaper); + else if (!acquire && pool->funcs->release_post_bldn_3dlut) + ret = pool->funcs->release_post_bldn_3dlut(res_ctx, pool, lut, shaper); + } + } + return ret; +} + + static bool is_flip_pending_in_pipes(struct dc *dc, struct dc_state *context) { int i; diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h index 2dff1a5cf3b1..b307d95f5dd4 100644 --- a/drivers/gpu/drm/amd/display/dc/dc.h +++ b/drivers/gpu/drm/amd/display/dc/dc.h @@ -1365,6 +1365,14 @@ bool dc_acquire_release_mpc_3dlut( struct dc_3dlut **lut, struct dc_transfer_func **shaper); +bool +dc_acquire_release_mpc_3dlut_for_ctx(struct dc *dc, + bool acquire, + struct dc_state *state, + struct dc_stream_state *stream, + struct dc_3dlut **lut, + struct dc_transfer_func **shaper); + void dc_resource_state_copy_construct( const struct dc_state *src_ctx, struct dc_state *dst_ctx); -- 2.39.2
WARNING: multiple messages have this Message-ID (diff)
From: Melissa Wen <mwen@igalia.com> To: amd-gfx@lists.freedesktop.org, Harry Wentland <harry.wentland@amd.com>, Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>, sunpeng.li@amd.com, Alex Deucher <alexander.deucher@amd.com>, dri-devel@lists.freedesktop.org, christian.koenig@amd.com, Xinhui.Pan@amd.com, airlied@gmail.com, daniel@ffwll.ch Cc: Sebastian Wick <sebastian.wick@redhat.com>, Pekka Paalanen <pekka.paalanen@collabora.com>, Shashank Sharma <Shashank.Sharma@amd.com>, Alex Hung <alex.hung@amd.com>, Simon Ser <contact@emersion.fr>, Xaver Hugl <xaver.hugl@gmail.com>, kernel-dev@igalia.com, Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>, Joshua Ashton <joshua@froggi.es>, sungjoon.kim@amd.com Subject: [PATCH 19/36] drm/amd/display: handle MPC 3D LUT resources for a given context Date: Tue, 23 May 2023 21:15:03 -0100 [thread overview] Message-ID: <20230523221520.3115570-20-mwen@igalia.com> (raw) In-Reply-To: <20230523221520.3115570-1-mwen@igalia.com> In the original dc_acquire_release_mpc_3dlut(), only current ctx is considered, which doesn't fit the steps for atomic checking new ctx. Therefore, create a function to handle 3D LUT resource for a given context, so that we can check resources availability in atomic_check time and handle failures properly. Signed-off-by: Melissa Wen <mwen@igalia.com> --- drivers/gpu/drm/amd/display/dc/core/dc.c | 39 ++++++++++++++++++++++++ drivers/gpu/drm/amd/display/dc/dc.h | 8 +++++ 2 files changed, 47 insertions(+) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 8e8da8c0f8cc..542a8fb26c24 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -2129,6 +2129,45 @@ bool dc_acquire_release_mpc_3dlut( return ret; } +bool +dc_acquire_release_mpc_3dlut_for_ctx(struct dc *dc, + bool acquire, + struct dc_state *state, + struct dc_stream_state *stream, + struct dc_3dlut **lut, + struct dc_transfer_func **shaper) +{ + int pipe_idx; + bool ret = false; + bool found_pipe_idx = false; + const struct resource_pool *pool = dc->res_pool; + struct resource_context *res_ctx = &state->res_ctx; + int mpcc_id = 0; + + if (pool && res_ctx) { + if (acquire) { + /*find pipe idx for the given stream*/ + for (pipe_idx = 0; pipe_idx < pool->pipe_count; pipe_idx++) { + if (res_ctx->pipe_ctx[pipe_idx].stream == stream) { + found_pipe_idx = true; + mpcc_id = res_ctx->pipe_ctx[pipe_idx].plane_res.hubp->inst; + break; + } + } + } else + found_pipe_idx = true;/*for release pipe_idx is not required*/ + + if (found_pipe_idx) { + if (acquire && pool->funcs->acquire_post_bldn_3dlut) + ret = pool->funcs->acquire_post_bldn_3dlut(res_ctx, pool, mpcc_id, lut, shaper); + else if (!acquire && pool->funcs->release_post_bldn_3dlut) + ret = pool->funcs->release_post_bldn_3dlut(res_ctx, pool, lut, shaper); + } + } + return ret; +} + + static bool is_flip_pending_in_pipes(struct dc *dc, struct dc_state *context) { int i; diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h index 2dff1a5cf3b1..b307d95f5dd4 100644 --- a/drivers/gpu/drm/amd/display/dc/dc.h +++ b/drivers/gpu/drm/amd/display/dc/dc.h @@ -1365,6 +1365,14 @@ bool dc_acquire_release_mpc_3dlut( struct dc_3dlut **lut, struct dc_transfer_func **shaper); +bool +dc_acquire_release_mpc_3dlut_for_ctx(struct dc *dc, + bool acquire, + struct dc_state *state, + struct dc_stream_state *stream, + struct dc_3dlut **lut, + struct dc_transfer_func **shaper); + void dc_resource_state_copy_construct( const struct dc_state *src_ctx, struct dc_state *dst_ctx); -- 2.39.2
next prev parent reply other threads:[~2023-05-23 22:16 UTC|newest] Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-05-23 22:14 [PATCH 00/36] drm/amd/display: add AMD driver-specific properties for color mgmt Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 01/36] drm/drm_mode_object: increase max objects to accommodate new color props Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:21 ` Simon Ser 2023-05-23 22:21 ` Simon Ser 2023-05-23 22:14 ` [PATCH 02/36] drm/drm_property: make replace_property_blob_from_id a DRM helper Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-25 14:48 ` Liviu Dudau 2023-05-25 14:48 ` Liviu Dudau 2023-05-23 22:14 ` [PATCH 03/36] drm/drm_plane: track color mgmt changes per plane Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 04/36] drm/amd/display: fix segment distribution for linear LUTs Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 05/36] drm/amd/display: fix the delta clamping for shaper LUT Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 06/36] drm/amd/display: add CRTC driver-specific property for gamma TF Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-24 8:24 ` Pekka Paalanen 2023-05-24 8:24 ` Pekka Paalanen 2023-05-25 15:32 ` Harry Wentland 2023-05-25 15:32 ` Harry Wentland 2023-05-25 19:43 ` kernel test robot 2023-05-25 19:43 ` kernel test robot 2023-06-01 19:17 ` Harry Wentland 2023-06-01 19:17 ` Harry Wentland 2023-06-06 16:18 ` Joshua Ashton 2023-06-06 16:18 ` Joshua Ashton 2023-06-06 16:26 ` Sebastian Wick 2023-06-06 16:26 ` Sebastian Wick 2023-06-06 16:57 ` Melissa Wen 2023-06-06 16:57 ` Melissa Wen 2023-06-06 20:03 ` Harry Wentland 2023-06-06 20:03 ` Harry Wentland 2023-06-06 17:14 ` Melissa Wen 2023-06-06 17:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 07/36] drm/amd/display: add plane driver-specific properties for degamma LUT Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-06-01 19:24 ` Harry Wentland 2023-06-01 19:24 ` Harry Wentland 2023-06-06 17:15 ` Melissa Wen 2023-06-06 17:15 ` Melissa Wen 2023-06-10 5:34 ` Joshua Ashton 2023-06-10 5:34 ` Joshua Ashton 2023-05-23 22:14 ` [PATCH 08/36] drm/amd/display: add plane degamma TF driver-specific property Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-26 2:57 ` kernel test robot 2023-05-26 2:57 ` kernel test robot 2023-05-23 22:14 ` [PATCH 09/36] drm/amd/display: add plane HDR multiplier " Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-06-01 19:33 ` Harry Wentland 2023-06-01 19:33 ` Harry Wentland 2023-05-23 22:14 ` [PATCH 10/36] drm/amd/display: add plane 3D LUT driver-specific properties Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 11/36] drm/amd/display: add plane shaper " Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 12/36] drm/amd/display: add plane shaper TF driver-private property Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 13/36] drm/amd/display: add plane blend LUT and TF driver-specific properties Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 14/36] drm/amd/display: add comments to describe DM crtc color mgmt behavior Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:14 ` [PATCH 15/36] drm/amd/display: encapsulate atomic regamma operation Melissa Wen 2023-05-23 22:14 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 16/36] drm/amd/display: update lut3d and shaper lut to stream Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 17/36] drm/amd/display: copy 3D LUT settings from crtc state to stream_update Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 18/36] drm/amd/display: allow BYPASS 3D LUT but keep shaper LUT settings Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` Melissa Wen [this message] 2023-05-23 22:15 ` [PATCH 19/36] drm/amd/display: handle MPC 3D LUT resources for a given context Melissa Wen 2023-05-23 22:15 ` [PATCH 20/36] drm/amd/display: dynamically acquire 3DLUT resources for color changes Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 21/36] drm/amd/display: add CRTC 3D LUT support Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-25 1:13 ` kernel test robot 2023-05-25 1:13 ` kernel test robot 2023-06-01 20:19 ` Harry Wentland 2023-06-01 20:19 ` Harry Wentland 2023-06-06 17:03 ` Melissa Wen 2023-06-06 17:03 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 22/36] drm/amd/display: add CRTC shaper " Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 23/36] drm/amd/display: add CRTC regamma TF support Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 24/36] drm/amd/display: set sdr_ref_white_level to 80 for out_transfer_func Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 25/36] drm/amd/display: add CRTC shaper TF support Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 26/36] drm/amd/display: mark plane as needing reset if plane color mgmt changes Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 27/36] drm/amd/display: decouple steps for mapping CRTC degamma to DC plane Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 28/36] drm/amd/display: add support for plane degamma TF and LUT properties Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 29/36] drm/amd/display: reject atomic commit if setting both plane and CRTC degamma Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 30/36] drm/amd/display: add dc_fixpt_from_s3132 helper Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 31/36] drm/adm/display: add HDR multiplier support Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 32/36] drm/amd/display: program DPP shaper and 3D LUT if updated Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 33/36] drm/amd/display: add plane shaper/3D LUT and shaper TF support Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 34/36] drm/amd/display: handle empty LUTs in __set_input_tf Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 35/36] drm/amd/display: add DRM plane blend LUT and TF support Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-05-23 22:15 ` [PATCH 36/36] drm/amd/display: allow newer DC hardware to use degamma ROM for PQ/HLG Melissa Wen 2023-05-23 22:15 ` Melissa Wen 2023-06-02 15:10 ` Harry Wentland 2023-06-02 15:10 ` Harry Wentland 2023-05-29 22:55 ` [PATCH 00/36] drm/amd/display: add AMD driver-specific properties for color mgmt Dmitry Baryshkov 2023-05-29 22:55 ` Dmitry Baryshkov 2023-05-30 7:22 ` Pekka Paalanen 2023-05-30 7:22 ` Pekka Paalanen 2023-06-02 15:18 ` Harry Wentland 2023-06-02 15:18 ` Harry Wentland 2023-06-06 17:22 ` Melissa Wen 2023-06-06 17:22 ` Melissa Wen 2023-06-06 17:29 ` Melissa Wen 2023-06-06 17:29 ` Melissa Wen
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=20230523221520.3115570-20-mwen@igalia.com \ --to=mwen@igalia.com \ --cc=Rodrigo.Siqueira@amd.com \ --cc=Shashank.Sharma@amd.com \ --cc=Xinhui.Pan@amd.com \ --cc=airlied@gmail.com \ --cc=alex.hung@amd.com \ --cc=alexander.deucher@amd.com \ --cc=amd-gfx@lists.freedesktop.org \ --cc=christian.koenig@amd.com \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=harry.wentland@amd.com \ --cc=joshua@froggi.es \ --cc=kernel-dev@igalia.com \ --cc=nicholas.kazlauskas@amd.com \ --cc=pekka.paalanen@collabora.com \ --cc=sebastian.wick@redhat.com \ --cc=sungjoon.kim@amd.com \ --cc=sunpeng.li@amd.com \ --cc=xaver.hugl@gmail.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.