Message ID | a712d2b70aaee20379cfc52c2141aa2f6e2a9d5b.1599120059.git-series.maxime@cerno.tech (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/vc4: Support BCM2711 Display Pipeline | expand |
Hi Maxime On Thu, 3 Sep 2020 at 09:02, Maxime Ripard <maxime@cerno.tech> wrote: > > The vc4 atomic commit loop has an handrolled loop that is basically > identical to for_each_new_crtc_state, let's convert it to that helper. > > Tested-by: Chanwoo Choi <cw00.choi@samsung.com> > Tested-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> > Tested-by: Stefan Wahren <stefan.wahren@i2se.com> > Signed-off-by: Maxime Ripard <maxime@cerno.tech> Based on your comment to the previous revision, I'm happy. Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com> > --- > drivers/gpu/drm/vc4/vc4_kms.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c > index 210cc2408087..a41d105d4e3c 100644 > --- a/drivers/gpu/drm/vc4/vc4_kms.c > +++ b/drivers/gpu/drm/vc4/vc4_kms.c > @@ -152,14 +152,16 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) > struct drm_device *dev = state->dev; > struct vc4_dev *vc4 = to_vc4_dev(dev); > struct vc4_hvs *hvs = vc4->hvs; > - struct vc4_crtc *vc4_crtc; > + struct drm_crtc_state *new_crtc_state; > + struct drm_crtc *crtc; > int i; > > - for (i = 0; i < dev->mode_config.num_crtc; i++) { > - if (!state->crtcs[i].ptr || !state->crtcs[i].commit) > + for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) { > + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); > + > + if (!new_crtc_state->commit) > continue; > > - vc4_crtc = to_vc4_crtc(state->crtcs[i].ptr); > vc4_hvs_mask_underrun(dev, vc4_crtc->channel); > } > > -- > git-series 0.9.1
diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c index 210cc2408087..a41d105d4e3c 100644 --- a/drivers/gpu/drm/vc4/vc4_kms.c +++ b/drivers/gpu/drm/vc4/vc4_kms.c @@ -152,14 +152,16 @@ vc4_atomic_complete_commit(struct drm_atomic_state *state) struct drm_device *dev = state->dev; struct vc4_dev *vc4 = to_vc4_dev(dev); struct vc4_hvs *hvs = vc4->hvs; - struct vc4_crtc *vc4_crtc; + struct drm_crtc_state *new_crtc_state; + struct drm_crtc *crtc; int i; - for (i = 0; i < dev->mode_config.num_crtc; i++) { - if (!state->crtcs[i].ptr || !state->crtcs[i].commit) + for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) { + struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); + + if (!new_crtc_state->commit) continue; - vc4_crtc = to_vc4_crtc(state->crtcs[i].ptr); vc4_hvs_mask_underrun(dev, vc4_crtc->channel); }