* [PATCH v2 1/3] drm/msm/mdp4: convert to drm_crtc_handle_vblank()
@ 2022-05-07 17:09 Dmitry Baryshkov
2022-05-07 17:09 ` [PATCH v2 2/3] drm/msm/mdp5: " Dmitry Baryshkov
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Dmitry Baryshkov @ 2022-05-07 17:09 UTC (permalink / raw)
To: Rob Clark, Sean Paul, Abhinav Kumar
Cc: Stephen Boyd, David Airlie, Daniel Vetter, Bjorn Andersson,
linux-arm-msm, dri-devel, freedreno
Stop using deprecated drm_handle_vblank(), use drm_crtc_handle_vblank()
instead.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c
index 4d49f3ba6a96..ddcdd5e87853 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c
@@ -69,8 +69,7 @@ irqreturn_t mdp4_irq(struct msm_kms *kms)
struct mdp_kms *mdp_kms = to_mdp_kms(kms);
struct mdp4_kms *mdp4_kms = to_mdp4_kms(mdp_kms);
struct drm_device *dev = mdp4_kms->dev;
- struct msm_drm_private *priv = dev->dev_private;
- unsigned int id;
+ struct drm_crtc *crtc;
uint32_t status, enable;
enable = mdp4_read(mdp4_kms, REG_MDP4_INTR_ENABLE);
@@ -81,9 +80,9 @@ irqreturn_t mdp4_irq(struct msm_kms *kms)
mdp_dispatch_irqs(mdp_kms, status);
- for (id = 0; id < priv->num_crtcs; id++)
- if (status & mdp4_crtc_vblank(priv->crtcs[id]))
- drm_handle_vblank(dev, id);
+ drm_for_each_crtc(crtc, dev)
+ if (status & mdp4_crtc_vblank(crtc))
+ drm_crtc_handle_vblank(crtc);
return IRQ_HANDLED;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v2 2/3] drm/msm/mdp5: convert to drm_crtc_handle_vblank() 2022-05-07 17:09 [PATCH v2 1/3] drm/msm/mdp4: convert to drm_crtc_handle_vblank() Dmitry Baryshkov @ 2022-05-07 17:09 ` Dmitry Baryshkov 2022-06-16 20:21 ` Abhinav Kumar 2022-05-07 17:09 ` [PATCH v2 3/3] drm/msm: stop storing the array of CRTCs in struct msm_drm_private Dmitry Baryshkov 2022-06-16 19:46 ` [PATCH v2 1/3] drm/msm/mdp4: convert to drm_crtc_handle_vblank() Abhinav Kumar 2 siblings, 1 reply; 6+ messages in thread From: Dmitry Baryshkov @ 2022-05-07 17:09 UTC (permalink / raw) To: Rob Clark, Sean Paul, Abhinav Kumar Cc: Stephen Boyd, David Airlie, Daniel Vetter, Bjorn Andersson, linux-arm-msm, dri-devel, freedreno Stop using deprecated drm_handle_vblank(), use drm_crtc_handle_vblank() instead. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c index 9b4c8d92ff32..43443a435d59 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c @@ -82,8 +82,7 @@ irqreturn_t mdp5_irq(struct msm_kms *kms) struct mdp_kms *mdp_kms = to_mdp_kms(kms); struct mdp5_kms *mdp5_kms = to_mdp5_kms(mdp_kms); struct drm_device *dev = mdp5_kms->dev; - struct msm_drm_private *priv = dev->dev_private; - unsigned int id; + struct drm_crtc *crtc; uint32_t status, enable; enable = mdp5_read(mdp5_kms, REG_MDP5_INTR_EN); @@ -94,9 +93,9 @@ irqreturn_t mdp5_irq(struct msm_kms *kms) mdp_dispatch_irqs(mdp_kms, status); - for (id = 0; id < priv->num_crtcs; id++) - if (status & mdp5_crtc_vblank(priv->crtcs[id])) - drm_handle_vblank(dev, id); + drm_for_each_crtc(crtc, dev) + if (status & mdp5_crtc_vblank(crtc)) + drm_crtc_handle_vblank(crtc); return IRQ_HANDLED; } -- 2.35.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/3] drm/msm/mdp5: convert to drm_crtc_handle_vblank() 2022-05-07 17:09 ` [PATCH v2 2/3] drm/msm/mdp5: " Dmitry Baryshkov @ 2022-06-16 20:21 ` Abhinav Kumar 0 siblings, 0 replies; 6+ messages in thread From: Abhinav Kumar @ 2022-06-16 20:21 UTC (permalink / raw) To: Dmitry Baryshkov, Rob Clark, Sean Paul Cc: Stephen Boyd, David Airlie, Daniel Vetter, Bjorn Andersson, linux-arm-msm, dri-devel, freedreno On 5/7/2022 10:09 AM, Dmitry Baryshkov wrote: > Stop using deprecated drm_handle_vblank(), use drm_crtc_handle_vblank() > instead. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> > --- > drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c > index 9b4c8d92ff32..43443a435d59 100644 > --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c > +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c > @@ -82,8 +82,7 @@ irqreturn_t mdp5_irq(struct msm_kms *kms) > struct mdp_kms *mdp_kms = to_mdp_kms(kms); > struct mdp5_kms *mdp5_kms = to_mdp5_kms(mdp_kms); > struct drm_device *dev = mdp5_kms->dev; > - struct msm_drm_private *priv = dev->dev_private; > - unsigned int id; > + struct drm_crtc *crtc; > uint32_t status, enable; > > enable = mdp5_read(mdp5_kms, REG_MDP5_INTR_EN); > @@ -94,9 +93,9 @@ irqreturn_t mdp5_irq(struct msm_kms *kms) > > mdp_dispatch_irqs(mdp_kms, status); > > - for (id = 0; id < priv->num_crtcs; id++) > - if (status & mdp5_crtc_vblank(priv->crtcs[id])) > - drm_handle_vblank(dev, id); > + drm_for_each_crtc(crtc, dev) > + if (status & mdp5_crtc_vblank(crtc)) > + drm_crtc_handle_vblank(crtc); > > return IRQ_HANDLED; > } ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 3/3] drm/msm: stop storing the array of CRTCs in struct msm_drm_private 2022-05-07 17:09 [PATCH v2 1/3] drm/msm/mdp4: convert to drm_crtc_handle_vblank() Dmitry Baryshkov 2022-05-07 17:09 ` [PATCH v2 2/3] drm/msm/mdp5: " Dmitry Baryshkov @ 2022-05-07 17:09 ` Dmitry Baryshkov 2022-06-16 20:42 ` Abhinav Kumar 2022-06-16 19:46 ` [PATCH v2 1/3] drm/msm/mdp4: convert to drm_crtc_handle_vblank() Abhinav Kumar 2 siblings, 1 reply; 6+ messages in thread From: Dmitry Baryshkov @ 2022-05-07 17:09 UTC (permalink / raw) To: Rob Clark, Sean Paul, Abhinav Kumar Cc: Stephen Boyd, David Airlie, Daniel Vetter, Bjorn Andersson, linux-arm-msm, dri-devel, freedreno, kernel test robot Handling the array of CRTC duplicate the struct msm_drm_private duplicates a list of CRTCs in the drm_device. Drop it and use the existing list for CRTC enumeration. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- Changes since v1: - Intialize the index variable in msm_drm_init() / event thread initialization. --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +- drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 2 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 2 +- drivers/gpu/drm/msm/msm_drv.c | 29 ++++++++++++------------ drivers/gpu/drm/msm/msm_drv.h | 3 +-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index 2b9d931474e0..c84859fb2d9b 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -808,7 +808,7 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms) ret = PTR_ERR(crtc); return ret; } - priv->crtcs[priv->num_crtcs++] = crtc; + priv->num_crtcs++; } /* All CRTCs are compatible with all encoders */ diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c index fb48c8c19ec3..7449c1693e45 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c @@ -337,7 +337,7 @@ static int modeset_init(struct mdp4_kms *mdp4_kms) goto fail; } - priv->crtcs[priv->num_crtcs++] = crtc; + priv->num_crtcs++; } /* diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c index 3d5621a68f85..36808990f840 100644 --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c @@ -497,7 +497,7 @@ static int modeset_init(struct mdp5_kms *mdp5_kms) DRM_DEV_ERROR(dev->dev, "failed to construct crtc %d (%d)\n", i, ret); goto fail; } - priv->crtcs[priv->num_crtcs++] = crtc; + priv->num_crtcs++; } /* diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index 4a3dda23e3e0..db676a142ac1 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -144,7 +144,7 @@ static void msm_irq_uninstall(struct drm_device *dev) struct msm_vblank_work { struct work_struct work; - int crtc_id; + struct drm_crtc *crtc; bool enable; struct msm_drm_private *priv; }; @@ -157,15 +157,15 @@ static void vblank_ctrl_worker(struct work_struct *work) struct msm_kms *kms = priv->kms; if (vbl_work->enable) - kms->funcs->enable_vblank(kms, priv->crtcs[vbl_work->crtc_id]); + kms->funcs->enable_vblank(kms, vbl_work->crtc); else - kms->funcs->disable_vblank(kms, priv->crtcs[vbl_work->crtc_id]); + kms->funcs->disable_vblank(kms, vbl_work->crtc); kfree(vbl_work); } static int vblank_ctrl_queue_work(struct msm_drm_private *priv, - int crtc_id, bool enable) + struct drm_crtc *crtc, bool enable) { struct msm_vblank_work *vbl_work; @@ -175,7 +175,7 @@ static int vblank_ctrl_queue_work(struct msm_drm_private *priv, INIT_WORK(&vbl_work->work, vblank_ctrl_worker); - vbl_work->crtc_id = crtc_id; + vbl_work->crtc = crtc; vbl_work->enable = enable; vbl_work->priv = priv; @@ -349,6 +349,7 @@ static int msm_drm_init(struct device *dev, const struct drm_driver *drv) struct msm_drm_private *priv = dev_get_drvdata(dev); struct drm_device *ddev; struct msm_kms *kms; + struct drm_crtc *crtc; int ret, i; if (drm_firmware_drivers_only()) @@ -422,12 +423,14 @@ static int msm_drm_init(struct device *dev, const struct drm_driver *drv) ddev->mode_config.funcs = &mode_config_funcs; ddev->mode_config.helper_private = &mode_config_helper_funcs; - for (i = 0; i < priv->num_crtcs; i++) { + drm_for_each_crtc(crtc, ddev) { + i = drm_crtc_index(crtc); + /* initialize event thread */ - priv->event_thread[i].crtc_id = priv->crtcs[i]->base.id; + priv->event_thread[i].crtc = crtc; priv->event_thread[i].dev = ddev; priv->event_thread[i].worker = kthread_create_worker(0, - "crtc_event:%d", priv->event_thread[i].crtc_id); + "crtc_event:%d", priv->event_thread[i].crtc->base.id); if (IS_ERR(priv->event_thread[i].worker)) { ret = PTR_ERR(priv->event_thread[i].worker); DRM_DEV_ERROR(dev, "failed to create crtc_event kthread\n"); @@ -558,25 +561,23 @@ static void msm_postclose(struct drm_device *dev, struct drm_file *file) int msm_crtc_enable_vblank(struct drm_crtc *crtc) { struct drm_device *dev = crtc->dev; - unsigned int pipe = crtc->index; struct msm_drm_private *priv = dev->dev_private; struct msm_kms *kms = priv->kms; if (!kms) return -ENXIO; - drm_dbg_vbl(dev, "crtc=%u", pipe); - return vblank_ctrl_queue_work(priv, pipe, true); + drm_dbg_vbl(dev, "crtc=%u", crtc->base.id); + return vblank_ctrl_queue_work(priv, crtc, true); } void msm_crtc_disable_vblank(struct drm_crtc *crtc) { struct drm_device *dev = crtc->dev; - unsigned int pipe = crtc->index; struct msm_drm_private *priv = dev->dev_private; struct msm_kms *kms = priv->kms; if (!kms) return; - drm_dbg_vbl(dev, "crtc=%u", pipe); - vblank_ctrl_queue_work(priv, pipe, false); + drm_dbg_vbl(dev, "crtc=%u", crtc->base.id); + vblank_ctrl_queue_work(priv, crtc, false); } /* diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index fdbaad53eb84..2ba57c575e13 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -102,7 +102,7 @@ struct msm_display_topology { /* Commit/Event thread specific structure */ struct msm_drm_thread { struct drm_device *dev; - unsigned int crtc_id; + struct drm_crtc *crtc; struct kthread_worker *worker; }; @@ -178,7 +178,6 @@ struct msm_drm_private { struct workqueue_struct *wq; unsigned int num_crtcs; - struct drm_crtc *crtcs[MAX_CRTCS]; struct msm_drm_thread event_thread[MAX_CRTCS]; -- 2.35.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 3/3] drm/msm: stop storing the array of CRTCs in struct msm_drm_private 2022-05-07 17:09 ` [PATCH v2 3/3] drm/msm: stop storing the array of CRTCs in struct msm_drm_private Dmitry Baryshkov @ 2022-06-16 20:42 ` Abhinav Kumar 0 siblings, 0 replies; 6+ messages in thread From: Abhinav Kumar @ 2022-06-16 20:42 UTC (permalink / raw) To: Dmitry Baryshkov, Rob Clark, Sean Paul Cc: Stephen Boyd, David Airlie, Daniel Vetter, Bjorn Andersson, linux-arm-msm, dri-devel, freedreno, kernel test robot On 5/7/2022 10:09 AM, Dmitry Baryshkov wrote: > Handling the array of CRTC duplicate the struct msm_drm_private > duplicates a list of CRTCs in the drm_device. Drop it and use the There seem to be two duplicates in the commit text :) So this should just be "handling the array of CRTCs duplicates a list of of CRTCs in the drm_device. > existing list for CRTC enumeration. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Reported-by: kernel test robot <lkp@intel.com> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > > Changes since v1: > - Intialize the index variable in msm_drm_init() / event thread > initialization. > > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +- > drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 2 +- > drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 2 +- > drivers/gpu/drm/msm/msm_drv.c | 29 ++++++++++++------------ > drivers/gpu/drm/msm/msm_drv.h | 3 +-- > 5 files changed, 19 insertions(+), 19 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > index 2b9d931474e0..c84859fb2d9b 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > @@ -808,7 +808,7 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms) > ret = PTR_ERR(crtc); > return ret; > } > - priv->crtcs[priv->num_crtcs++] = crtc; > + priv->num_crtcs++; > } > > /* All CRTCs are compatible with all encoders */ > diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c > index fb48c8c19ec3..7449c1693e45 100644 > --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c > +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c > @@ -337,7 +337,7 @@ static int modeset_init(struct mdp4_kms *mdp4_kms) > goto fail; > } > > - priv->crtcs[priv->num_crtcs++] = crtc; > + priv->num_crtcs++; > } > > /* > diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c > index 3d5621a68f85..36808990f840 100644 > --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c > +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c > @@ -497,7 +497,7 @@ static int modeset_init(struct mdp5_kms *mdp5_kms) > DRM_DEV_ERROR(dev->dev, "failed to construct crtc %d (%d)\n", i, ret); > goto fail; > } > - priv->crtcs[priv->num_crtcs++] = crtc; > + priv->num_crtcs++; > } > > /* > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c > index 4a3dda23e3e0..db676a142ac1 100644 > --- a/drivers/gpu/drm/msm/msm_drv.c > +++ b/drivers/gpu/drm/msm/msm_drv.c > @@ -144,7 +144,7 @@ static void msm_irq_uninstall(struct drm_device *dev) > > struct msm_vblank_work { > struct work_struct work; > - int crtc_id; > + struct drm_crtc *crtc; > bool enable; > struct msm_drm_private *priv; > }; > @@ -157,15 +157,15 @@ static void vblank_ctrl_worker(struct work_struct *work) > struct msm_kms *kms = priv->kms; > > if (vbl_work->enable) > - kms->funcs->enable_vblank(kms, priv->crtcs[vbl_work->crtc_id]); > + kms->funcs->enable_vblank(kms, vbl_work->crtc); > else > - kms->funcs->disable_vblank(kms, priv->crtcs[vbl_work->crtc_id]); > + kms->funcs->disable_vblank(kms, vbl_work->crtc); > > kfree(vbl_work); > } > > static int vblank_ctrl_queue_work(struct msm_drm_private *priv, > - int crtc_id, bool enable) > + struct drm_crtc *crtc, bool enable) > { > struct msm_vblank_work *vbl_work; > > @@ -175,7 +175,7 @@ static int vblank_ctrl_queue_work(struct msm_drm_private *priv, > > INIT_WORK(&vbl_work->work, vblank_ctrl_worker); > > - vbl_work->crtc_id = crtc_id; > + vbl_work->crtc = crtc; > vbl_work->enable = enable; > vbl_work->priv = priv; > > @@ -349,6 +349,7 @@ static int msm_drm_init(struct device *dev, const struct drm_driver *drv) > struct msm_drm_private *priv = dev_get_drvdata(dev); > struct drm_device *ddev; > struct msm_kms *kms; > + struct drm_crtc *crtc; > int ret, i; > > if (drm_firmware_drivers_only()) > @@ -422,12 +423,14 @@ static int msm_drm_init(struct device *dev, const struct drm_driver *drv) > ddev->mode_config.funcs = &mode_config_funcs; > ddev->mode_config.helper_private = &mode_config_helper_funcs; > > - for (i = 0; i < priv->num_crtcs; i++) { > + drm_for_each_crtc(crtc, ddev) { > + i = drm_crtc_index(crtc); > + > /* initialize event thread */ > - priv->event_thread[i].crtc_id = priv->crtcs[i]->base.id; > + priv->event_thread[i].crtc = crtc; > priv->event_thread[i].dev = ddev; Do we really need 'i' here? Can't we just do priv->event_thread[drm_crtc_index(crtc)]? > priv->event_thread[i].worker = kthread_create_worker(0, > - "crtc_event:%d", priv->event_thread[i].crtc_id); > + "crtc_event:%d", priv->event_thread[i].crtc->base.id); > if (IS_ERR(priv->event_thread[i].worker)) { > ret = PTR_ERR(priv->event_thread[i].worker); > DRM_DEV_ERROR(dev, "failed to create crtc_event kthread\n"); > @@ -558,25 +561,23 @@ static void msm_postclose(struct drm_device *dev, struct drm_file *file) > int msm_crtc_enable_vblank(struct drm_crtc *crtc) > { > struct drm_device *dev = crtc->dev; > - unsigned int pipe = crtc->index; > struct msm_drm_private *priv = dev->dev_private; > struct msm_kms *kms = priv->kms; > if (!kms) > return -ENXIO; > - drm_dbg_vbl(dev, "crtc=%u", pipe); > - return vblank_ctrl_queue_work(priv, pipe, true); > + drm_dbg_vbl(dev, "crtc=%u", crtc->base.id); > + return vblank_ctrl_queue_work(priv, crtc, true); > } > > void msm_crtc_disable_vblank(struct drm_crtc *crtc) > { > struct drm_device *dev = crtc->dev; > - unsigned int pipe = crtc->index; > struct msm_drm_private *priv = dev->dev_private; > struct msm_kms *kms = priv->kms; > if (!kms) > return; > - drm_dbg_vbl(dev, "crtc=%u", pipe); > - vblank_ctrl_queue_work(priv, pipe, false); > + drm_dbg_vbl(dev, "crtc=%u", crtc->base.id); > + vblank_ctrl_queue_work(priv, crtc, false); > } > > /* > diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h > index fdbaad53eb84..2ba57c575e13 100644 > --- a/drivers/gpu/drm/msm/msm_drv.h > +++ b/drivers/gpu/drm/msm/msm_drv.h > @@ -102,7 +102,7 @@ struct msm_display_topology { > /* Commit/Event thread specific structure */ > struct msm_drm_thread { > struct drm_device *dev; > - unsigned int crtc_id; > + struct drm_crtc *crtc; > struct kthread_worker *worker; > }; > > @@ -178,7 +178,6 @@ struct msm_drm_private { > struct workqueue_struct *wq; > > unsigned int num_crtcs; > - struct drm_crtc *crtcs[MAX_CRTCS]; > > struct msm_drm_thread event_thread[MAX_CRTCS]; > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/3] drm/msm/mdp4: convert to drm_crtc_handle_vblank() 2022-05-07 17:09 [PATCH v2 1/3] drm/msm/mdp4: convert to drm_crtc_handle_vblank() Dmitry Baryshkov 2022-05-07 17:09 ` [PATCH v2 2/3] drm/msm/mdp5: " Dmitry Baryshkov 2022-05-07 17:09 ` [PATCH v2 3/3] drm/msm: stop storing the array of CRTCs in struct msm_drm_private Dmitry Baryshkov @ 2022-06-16 19:46 ` Abhinav Kumar 2 siblings, 0 replies; 6+ messages in thread From: Abhinav Kumar @ 2022-06-16 19:46 UTC (permalink / raw) To: Dmitry Baryshkov, Rob Clark, Sean Paul Cc: Stephen Boyd, David Airlie, Daniel Vetter, Bjorn Andersson, linux-arm-msm, dri-devel, freedreno On 5/7/2022 10:09 AM, Dmitry Baryshkov wrote: > Stop using deprecated drm_handle_vblank(), use drm_crtc_handle_vblank() > instead. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> > --- > drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c > index 4d49f3ba6a96..ddcdd5e87853 100644 > --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c > +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.c > @@ -69,8 +69,7 @@ irqreturn_t mdp4_irq(struct msm_kms *kms) > struct mdp_kms *mdp_kms = to_mdp_kms(kms); > struct mdp4_kms *mdp4_kms = to_mdp4_kms(mdp_kms); > struct drm_device *dev = mdp4_kms->dev; > - struct msm_drm_private *priv = dev->dev_private; > - unsigned int id; > + struct drm_crtc *crtc; > uint32_t status, enable; > > enable = mdp4_read(mdp4_kms, REG_MDP4_INTR_ENABLE); > @@ -81,9 +80,9 @@ irqreturn_t mdp4_irq(struct msm_kms *kms) > > mdp_dispatch_irqs(mdp_kms, status); > > - for (id = 0; id < priv->num_crtcs; id++) > - if (status & mdp4_crtc_vblank(priv->crtcs[id])) > - drm_handle_vblank(dev, id); > + drm_for_each_crtc(crtc, dev) > + if (status & mdp4_crtc_vblank(crtc)) > + drm_crtc_handle_vblank(crtc); > > return IRQ_HANDLED; > } ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-06-16 20:43 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-05-07 17:09 [PATCH v2 1/3] drm/msm/mdp4: convert to drm_crtc_handle_vblank() Dmitry Baryshkov 2022-05-07 17:09 ` [PATCH v2 2/3] drm/msm/mdp5: " Dmitry Baryshkov 2022-06-16 20:21 ` Abhinav Kumar 2022-05-07 17:09 ` [PATCH v2 3/3] drm/msm: stop storing the array of CRTCs in struct msm_drm_private Dmitry Baryshkov 2022-06-16 20:42 ` Abhinav Kumar 2022-06-16 19:46 ` [PATCH v2 1/3] drm/msm/mdp4: convert to drm_crtc_handle_vblank() Abhinav Kumar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox