[Freedreno] [PATCH 2/3] drm/msm/dpu: split _dpu_encoder_resource_control_helper()
Abhinav Kumar
quic_abhinavk at quicinc.com
Wed Aug 30 01:20:45 UTC 2023
On 6/4/2023 7:45 AM, Dmitry Baryshkov wrote:
> Follow the _dpu_encoder_irq_control() change and split the
> _dpu_encoder_resource_control_helper() into enable and disable parts.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
> ---
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 45 +++++++++++++--------
> 1 file changed, 29 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> index 7c131c5cbe71..cc61f0cf059d 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> @@ -757,8 +757,7 @@ static void _dpu_encoder_irq_disable(struct drm_encoder *drm_enc)
> }
> }
>
> -static void _dpu_encoder_resource_control_helper(struct drm_encoder *drm_enc,
> - bool enable)
> +static void _dpu_encoder_resource_enable(struct drm_encoder *drm_enc)
> {
> struct msm_drm_private *priv;
> struct dpu_kms *dpu_kms;
> @@ -768,28 +767,42 @@ static void _dpu_encoder_resource_control_helper(struct drm_encoder *drm_enc,
> priv = drm_enc->dev->dev_private;
> dpu_kms = to_dpu_kms(priv->kms);
>
> - trace_dpu_enc_rc_helper(DRMID(drm_enc), enable);
> + trace_dpu_enc_rc_helper(DRMID(drm_enc), true);
same question about trace here.
>
> if (!dpu_enc->cur_master) {
> DPU_ERROR("encoder master not set\n");
> return;
> }
>
> - if (enable) {
> - /* enable DPU core clks */
> - pm_runtime_get_sync(&dpu_kms->pdev->dev);
> + /* enable DPU core clks */
> + pm_runtime_get_sync(&dpu_kms->pdev->dev);
>
> - /* enable all the irq */
> - _dpu_encoder_irq_enable(drm_enc);
> + /* enable all the irq */
> + _dpu_encoder_irq_enable(drm_enc);
> +}
>
> - } else {
> - /* disable all the irq */
> - _dpu_encoder_irq_disable(drm_enc);
> +static void _dpu_encoder_resource_disable(struct drm_encoder *drm_enc)
> +{
> + struct msm_drm_private *priv;
> + struct dpu_kms *dpu_kms;
> + struct dpu_encoder_virt *dpu_enc;
>
> - /* disable DPU core clks */
> - pm_runtime_put_sync(&dpu_kms->pdev->dev);
> + dpu_enc = to_dpu_encoder_virt(drm_enc);
> + priv = drm_enc->dev->dev_private;
> + dpu_kms = to_dpu_kms(priv->kms);
> +
> + trace_dpu_enc_rc_helper(DRMID(drm_enc), false);
and here.
> +
> + if (!dpu_enc->cur_master) {
> + DPU_ERROR("encoder master not set\n");
> + return;
> }
>
> + /* disable all the irq */
> + _dpu_encoder_irq_disable(drm_enc);
> +
> + /* disable DPU core clks */
> + pm_runtime_put_sync(&dpu_kms->pdev->dev);
> }
>
> static int dpu_encoder_resource_control(struct drm_encoder *drm_enc,
> @@ -847,7 +860,7 @@ static int dpu_encoder_resource_control(struct drm_encoder *drm_enc,
> if (is_vid_mode && dpu_enc->rc_state == DPU_ENC_RC_STATE_IDLE)
> _dpu_encoder_irq_enable(drm_enc);
> else
> - _dpu_encoder_resource_control_helper(drm_enc, true);
> + _dpu_encoder_resource_enable(drm_enc);
>
> dpu_enc->rc_state = DPU_ENC_RC_STATE_ON;
>
> @@ -942,7 +955,7 @@ static int dpu_encoder_resource_control(struct drm_encoder *drm_enc,
> * and in IDLE state the resources are already disabled
> */
> if (dpu_enc->rc_state == DPU_ENC_RC_STATE_PRE_OFF)
> - _dpu_encoder_resource_control_helper(drm_enc, false);
> + _dpu_encoder_resource_disable(drm_enc);
>
> dpu_enc->rc_state = DPU_ENC_RC_STATE_OFF;
>
> @@ -977,7 +990,7 @@ static int dpu_encoder_resource_control(struct drm_encoder *drm_enc,
> if (is_vid_mode)
> _dpu_encoder_irq_disable(drm_enc);
> else
> - _dpu_encoder_resource_control_helper(drm_enc, false);
> + _dpu_encoder_resource_disable(drm_enc);
>
> dpu_enc->rc_state = DPU_ENC_RC_STATE_IDLE;
>
More information about the Freedreno
mailing list