From: Abhinav Kumar <quic_abhinavk@quicinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>,
Marijn Suijten <marijn.suijten@somainline.org>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Vinod Koul <vkoul@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>
Cc: <linux-arm-msm@vger.kernel.org>,
<dri-devel@lists.freedesktop.org>,
<freedreno@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 05/35] drm/msm/dpu: inline _setup_ctl_ops()
Date: Wed, 15 Jan 2025 18:32:59 -0800 [thread overview]
Message-ID: <a92d4183-e139-479d-b33a-1ea603e941c4@quicinc.com> (raw)
In-Reply-To: <20241214-dpu-drop-features-v1-5-988f0662cb7e@linaro.org>
On 12/13/2024 2:14 PM, Dmitry Baryshkov wrote:
> Inline the _setup_ctl_ops() function, it makes it easier to handle
> different conditions involving CTL configuration.
>
Nothing really wrong with the change. Like the previous patch, would
like to check the other changes to see where we are going with this and
get back to this one.
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 96 ++++++++++++++----------------
> 1 file changed, 46 insertions(+), 50 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> index 4893f10d6a5832521808c0f4d8b231c356dbdc41..9a958a0c19f54c2ed2c204e314dfa8cd9e735111 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
> @@ -687,55 +687,6 @@ static void dpu_hw_ctl_set_fetch_pipe_active(struct dpu_hw_ctl *ctx,
> DPU_REG_WRITE(&ctx->hw, CTL_FETCH_PIPE_ACTIVE, val);
> }
>
> -static void _setup_ctl_ops(struct dpu_hw_ctl_ops *ops,
> - unsigned long cap)
> -{
> - if (cap & BIT(DPU_CTL_ACTIVE_CFG)) {
> - ops->trigger_flush = dpu_hw_ctl_trigger_flush_v1;
> - ops->setup_intf_cfg = dpu_hw_ctl_intf_cfg_v1;
> - ops->reset_intf_cfg = dpu_hw_ctl_reset_intf_cfg_v1;
> - ops->update_pending_flush_intf =
> - dpu_hw_ctl_update_pending_flush_intf_v1;
> -
> - ops->update_pending_flush_periph =
> - dpu_hw_ctl_update_pending_flush_periph_v1;
> -
> - ops->update_pending_flush_merge_3d =
> - dpu_hw_ctl_update_pending_flush_merge_3d_v1;
> - ops->update_pending_flush_wb = dpu_hw_ctl_update_pending_flush_wb_v1;
> - ops->update_pending_flush_dsc =
> - dpu_hw_ctl_update_pending_flush_dsc_v1;
> - ops->update_pending_flush_cdm = dpu_hw_ctl_update_pending_flush_cdm_v1;
> - } else {
> - ops->trigger_flush = dpu_hw_ctl_trigger_flush;
> - ops->setup_intf_cfg = dpu_hw_ctl_intf_cfg;
> - ops->update_pending_flush_intf =
> - dpu_hw_ctl_update_pending_flush_intf;
> - ops->update_pending_flush_wb = dpu_hw_ctl_update_pending_flush_wb;
> - ops->update_pending_flush_cdm = dpu_hw_ctl_update_pending_flush_cdm;
> - }
> - ops->clear_pending_flush = dpu_hw_ctl_clear_pending_flush;
> - ops->update_pending_flush = dpu_hw_ctl_update_pending_flush;
> - ops->get_pending_flush = dpu_hw_ctl_get_pending_flush;
> - ops->get_flush_register = dpu_hw_ctl_get_flush_register;
> - ops->trigger_start = dpu_hw_ctl_trigger_start;
> - ops->is_started = dpu_hw_ctl_is_started;
> - ops->trigger_pending = dpu_hw_ctl_trigger_pending;
> - ops->reset = dpu_hw_ctl_reset_control;
> - ops->wait_reset_status = dpu_hw_ctl_wait_reset_status;
> - ops->clear_all_blendstages = dpu_hw_ctl_clear_all_blendstages;
> - ops->setup_blendstage = dpu_hw_ctl_setup_blendstage;
> - ops->update_pending_flush_sspp = dpu_hw_ctl_update_pending_flush_sspp;
> - ops->update_pending_flush_mixer = dpu_hw_ctl_update_pending_flush_mixer;
> - if (cap & BIT(DPU_CTL_DSPP_SUB_BLOCK_FLUSH))
> - ops->update_pending_flush_dspp = dpu_hw_ctl_update_pending_flush_dspp_sub_blocks;
> - else
> - ops->update_pending_flush_dspp = dpu_hw_ctl_update_pending_flush_dspp;
> -
> - if (cap & BIT(DPU_CTL_FETCH_ACTIVE))
> - ops->set_active_pipes = dpu_hw_ctl_set_fetch_pipe_active;
> -};
> -
> /**
> * dpu_hw_ctl_init() - Initializes the ctl_path hw driver object.
> * Should be called before accessing any ctl_path register.
> @@ -761,7 +712,52 @@ struct dpu_hw_ctl *dpu_hw_ctl_init(struct drm_device *dev,
> c->hw.log_mask = DPU_DBG_MASK_CTL;
>
> c->caps = cfg;
> - _setup_ctl_ops(&c->ops, c->caps->features);
> +
> + if (c->caps->features & BIT(DPU_CTL_ACTIVE_CFG)) {
> + c->ops.trigger_flush = dpu_hw_ctl_trigger_flush_v1;
> + c->ops.setup_intf_cfg = dpu_hw_ctl_intf_cfg_v1;
> + c->ops.reset_intf_cfg = dpu_hw_ctl_reset_intf_cfg_v1;
> + c->ops.update_pending_flush_intf =
> + dpu_hw_ctl_update_pending_flush_intf_v1;
> +
> + c->ops.update_pending_flush_periph =
> + dpu_hw_ctl_update_pending_flush_periph_v1;
> +
> + c->ops.update_pending_flush_merge_3d =
> + dpu_hw_ctl_update_pending_flush_merge_3d_v1;
> + c->ops.update_pending_flush_wb = dpu_hw_ctl_update_pending_flush_wb_v1;
> + c->ops.update_pending_flush_dsc =
> + dpu_hw_ctl_update_pending_flush_dsc_v1;
> + c->ops.update_pending_flush_cdm = dpu_hw_ctl_update_pending_flush_cdm_v1;
> + } else {
> + c->ops.trigger_flush = dpu_hw_ctl_trigger_flush;
> + c->ops.setup_intf_cfg = dpu_hw_ctl_intf_cfg;
> + c->ops.update_pending_flush_intf =
> + dpu_hw_ctl_update_pending_flush_intf;
> + c->ops.update_pending_flush_wb = dpu_hw_ctl_update_pending_flush_wb;
> + c->ops.update_pending_flush_cdm = dpu_hw_ctl_update_pending_flush_cdm;
> + }
> + c->ops.clear_pending_flush = dpu_hw_ctl_clear_pending_flush;
> + c->ops.update_pending_flush = dpu_hw_ctl_update_pending_flush;
> + c->ops.get_pending_flush = dpu_hw_ctl_get_pending_flush;
> + c->ops.get_flush_register = dpu_hw_ctl_get_flush_register;
> + c->ops.trigger_start = dpu_hw_ctl_trigger_start;
> + c->ops.is_started = dpu_hw_ctl_is_started;
> + c->ops.trigger_pending = dpu_hw_ctl_trigger_pending;
> + c->ops.reset = dpu_hw_ctl_reset_control;
> + c->ops.wait_reset_status = dpu_hw_ctl_wait_reset_status;
> + c->ops.clear_all_blendstages = dpu_hw_ctl_clear_all_blendstages;
> + c->ops.setup_blendstage = dpu_hw_ctl_setup_blendstage;
> + c->ops.update_pending_flush_sspp = dpu_hw_ctl_update_pending_flush_sspp;
> + c->ops.update_pending_flush_mixer = dpu_hw_ctl_update_pending_flush_mixer;
> + if (c->caps->features & BIT(DPU_CTL_DSPP_SUB_BLOCK_FLUSH))
> + c->ops.update_pending_flush_dspp = dpu_hw_ctl_update_pending_flush_dspp_sub_blocks;
> + else
> + c->ops.update_pending_flush_dspp = dpu_hw_ctl_update_pending_flush_dspp;
> +
> + if (c->caps->features & BIT(DPU_CTL_FETCH_ACTIVE))
> + c->ops.set_active_pipes = dpu_hw_ctl_set_fetch_pipe_active;
> +
> c->idx = cfg->id;
> c->mixer_count = mixer_count;
> c->mixer_hw_caps = mixer;
>
next prev parent reply other threads:[~2025-01-16 2:33 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-13 22:14 [PATCH 00/35] drm/msm/dpu: rework HW block feature handling Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 01/35] drm/msm/dpu: skip watchdog timer programming through TOP on >= SM8450 Dmitry Baryshkov
2025-01-15 22:01 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 02/35] drm/msm/dpu: enable DPU_WB_INPUT_CTRL for DPU 5.x Dmitry Baryshkov
2025-01-15 22:09 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 03/35] drm/msm/dpu: stop passing mdss_ver to setup_timing_gen() Dmitry Baryshkov
2025-01-16 0:22 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 04/35] drm/msm/dpu: drop INTF_SC7280_MASK Dmitry Baryshkov
2025-01-16 1:17 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 05/35] drm/msm/dpu: inline _setup_ctl_ops() Dmitry Baryshkov
2025-01-16 2:32 ` Abhinav Kumar [this message]
2024-12-13 22:14 ` [PATCH 06/35] drm/msm/dpu: inline _setup_dsc_ops() Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 07/35] drm/msm/dpu: inline _setup_dspp_ops() Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 08/35] drm/msm/dpu: inline _setup_mixer_ops() Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 09/35] drm/msm/dpu: remove DSPP_SC7180_MASK Dmitry Baryshkov
2025-01-22 0:28 ` Abhinav Kumar
2025-01-22 0:47 ` Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 10/35] drm/msm/dpu: get rid of DPU_CTL_HAS_LAYER_EXT4 Dmitry Baryshkov
2025-01-22 0:42 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 11/35] drm/msm/dpu: get rid of DPU_CTL_ACTIVE_CFG Dmitry Baryshkov
2025-01-22 0:58 ` Abhinav Kumar
2025-01-22 9:53 ` Dmitry Baryshkov
2025-01-23 0:33 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 12/35] drm/msm/dpu: get rid of DPU_CTL_FETCH_ACTIVE Dmitry Baryshkov
2025-01-23 0:39 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 13/35] drm/msm/dpu: get rid of DPU_CTL_DSPP_SUB_BLOCK_FLUSH Dmitry Baryshkov
2025-01-23 0:54 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 14/35] drm/msm/dpu: get rid of DPU_CTL_VM_CFG Dmitry Baryshkov
2025-01-23 0:58 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 15/35] drm/msm/dpu: get rid of DPU_DATA_HCTL_EN Dmitry Baryshkov
2025-01-23 1:03 ` Abhinav Kumar
2024-12-13 22:14 ` [PATCH 16/35] drm/msm/dpu: get rid of DPU_INTF_STATUS_SUPPORTED Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 17/35] drm/msm/dpu: get rid of DPU_INTF_INPUT_CTRL Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 18/35] drm/msm/dpu: get rid of DPU_PINGPONG_DSC Dmitry Baryshkov
2025-01-23 21:32 ` Abhinav Kumar
2025-01-23 21:41 ` Abhinav Kumar
2025-01-24 5:19 ` Dmitry Baryshkov
2025-01-25 0:08 ` Abhinav Kumar
2025-01-25 1:02 ` Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 19/35] drm/msm/dpu: get rid of DPU_PINGPONG_DITHER Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 20/35] drm/msm/dpu: get rid of DPU_MDP_VSYNC_SEL Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 21/35] drm/msm/dpu: get rid of DPU_MDP_PERIPH_0_REMOVED Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 22/35] drm/msm/dpu: get rid of DPU_MDP_AUDIO_SELECT Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 23/35] drm/msm/dpu: get rid of DPU_MIXER_COMBINED_ALPHA Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 24/35] drm/msm/dpu: get rid of DPU_DIM_LAYER Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 25/35] drm/msm/dpu: get rid of DPU_DSC_HW_REV_1_2 Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 26/35] drm/msm/dpu: get rid of DPU_DSC_OUTPUT_CTRL Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 27/35] drm/msm/dpu: get rid of DPU_WB_INPUT_CTRL Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 28/35] drm/msm/dpu: get rid of DPU_SSPP_QOS_8LVL Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 29/35] drm/msm/dpu: drop unused MDP TOP features Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 30/35] drm/msm/dpu: drop ununused PINGPONG features Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 31/35] drm/msm/dpu: drop ununused MIXER features Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 32/35] drm/msm/dpu: get rid of DPU_MIXER_SOURCESPLIT Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 33/35] drm/msm/dpu: get rid of DPU_DSC_NATIVE_42x_EN Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 34/35] drm/msm/dpu: get rid of DPU_CTL_SPLIT_DISPLAY Dmitry Baryshkov
2024-12-13 22:14 ` [PATCH 35/35] drm/msm/dpu: move features out of the DPU_HW_BLK_INFO Dmitry Baryshkov
2025-02-17 22:10 ` (subset) [PATCH 00/35] drm/msm/dpu: rework HW block feature handling Abhinav Kumar
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=a92d4183-e139-479d-b33a-1ea603e941c4@quicinc.com \
--to=quic_abhinavk@quicinc.com \
--cc=airlied@gmail.com \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=konradybcio@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marijn.suijten@somainline.org \
--cc=robdclark@gmail.com \
--cc=sean@poorly.run \
--cc=simona@ffwll.ch \
--cc=vkoul@kernel.org \
/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
all inboxes | Powered by JetHome®