Message ID | 20230604144514.949628-3-dmitry.baryshkov@linaro.org |
---|---|
State | New |
Headers | show |
Series | drm/msm/dpu: remove dpu_encoder_phys_ops::atomic_mode_set callback | expand |
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@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; >
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); 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); + + 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;
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@linaro.org> --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 45 +++++++++++++-------- 1 file changed, 29 insertions(+), 16 deletions(-)