* [PATCH 09/16] drm/rockchip: Use for_each_oldnew_plane_in_state in vop_crtc_atomic_flush [not found] <20170712081344.25495-1-maarten.lankhorst@linux.intel.com> @ 2017-07-12 8:13 ` Maarten Lankhorst 2017-07-12 9:21 ` Daniel Vetter 2017-07-12 9:41 ` Mark yao 2017-07-12 8:13 ` [PATCH 13/16] drm/mediatek: Convert to new iterator macros Maarten Lankhorst 1 sibling, 2 replies; 7+ messages in thread From: Maarten Lankhorst @ 2017-07-12 8:13 UTC (permalink / raw) To: linux-arm-kernel for_each_obj_in_state is about to be removed, so use the new atomic iterator macros. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Mark Yao <mark.yao@rock-chips.com> Cc: Heiko Stuebner <heiko@sntech.de> Cc: linux-arm-kernel at lists.infradead.org Cc: linux-rockchip at lists.infradead.org --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index ee876a9631f0..f90088b1a247 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1029,7 +1029,7 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc, struct drm_crtc_state *old_crtc_state) { struct drm_atomic_state *old_state = old_crtc_state->state; - struct drm_plane_state *old_plane_state; + struct drm_plane_state *old_plane_state, *new_plane_state; struct vop *vop = to_vop(crtc); struct drm_plane *plane; int i; @@ -1060,11 +1060,12 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc, } spin_unlock_irq(&crtc->dev->event_lock); - for_each_plane_in_state(old_state, plane, old_plane_state, i) { + for_each_oldnew_plane_in_state(old_state, plane, old_plane_state, + new_plane_state, i) { if (!old_plane_state->fb) continue; - if (old_plane_state->fb == plane->state->fb) + if (old_plane_state->fb == new_plane_state->fb) continue; drm_framebuffer_reference(old_plane_state->fb); -- 2.11.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 09/16] drm/rockchip: Use for_each_oldnew_plane_in_state in vop_crtc_atomic_flush 2017-07-12 8:13 ` [PATCH 09/16] drm/rockchip: Use for_each_oldnew_plane_in_state in vop_crtc_atomic_flush Maarten Lankhorst @ 2017-07-12 9:21 ` Daniel Vetter 2017-07-12 9:41 ` Mark yao 1 sibling, 0 replies; 7+ messages in thread From: Daniel Vetter @ 2017-07-12 9:21 UTC (permalink / raw) To: linux-arm-kernel On Wed, Jul 12, 2017 at 10:13:37AM +0200, Maarten Lankhorst wrote: > for_each_obj_in_state is about to be removed, so use the new atomic > iterator macros. > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Mark Yao <mark.yao@rock-chips.com> > Cc: Heiko Stuebner <heiko@sntech.de> > Cc: linux-arm-kernel at lists.infradead.org > Cc: linux-rockchip at lists.infradead.org > --- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index ee876a9631f0..f90088b1a247 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -1029,7 +1029,7 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc, > struct drm_crtc_state *old_crtc_state) > { > struct drm_atomic_state *old_state = old_crtc_state->state; > - struct drm_plane_state *old_plane_state; > + struct drm_plane_state *old_plane_state, *new_plane_state; > struct vop *vop = to_vop(crtc); > struct drm_plane *plane; > int i; > @@ -1060,11 +1060,12 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc, > } > spin_unlock_irq(&crtc->dev->event_lock); > > - for_each_plane_in_state(old_state, plane, old_plane_state, i) { > + for_each_oldnew_plane_in_state(old_state, plane, old_plane_state, > + new_plane_state, i) { > if (!old_plane_state->fb) > continue; > > - if (old_plane_state->fb == plane->state->fb) > + if (old_plane_state->fb == new_plane_state->fb) > continue; This entire machinery here seems to be the perfect candidate for Boris' wait_for_flip_done work. Patch itself looks good. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > drm_framebuffer_reference(old_plane_state->fb); > -- > 2.11.0 > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 09/16] drm/rockchip: Use for_each_oldnew_plane_in_state in vop_crtc_atomic_flush 2017-07-12 8:13 ` [PATCH 09/16] drm/rockchip: Use for_each_oldnew_plane_in_state in vop_crtc_atomic_flush Maarten Lankhorst 2017-07-12 9:21 ` Daniel Vetter @ 2017-07-12 9:41 ` Mark yao 1 sibling, 0 replies; 7+ messages in thread From: Mark yao @ 2017-07-12 9:41 UTC (permalink / raw) To: linux-arm-kernel On 2017?07?12? 16:13, Maarten Lankhorst wrote: > for_each_obj_in_state is about to be removed, so use the new atomic > iterator macros. > > Signed-off-by: Maarten Lankhorst<maarten.lankhorst@linux.intel.com> > Cc: Mark Yao<mark.yao@rock-chips.com> > Cc: Heiko Stuebner<heiko@sntech.de> > Cc:linux-arm-kernel at lists.infradead.org > Cc:linux-rockchip at lists.infradead.org Looks good for me: Acked-by: Mark Yao <mark.yao@rock-chips.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 13/16] drm/mediatek: Convert to new iterator macros [not found] <20170712081344.25495-1-maarten.lankhorst@linux.intel.com> 2017-07-12 8:13 ` [PATCH 09/16] drm/rockchip: Use for_each_oldnew_plane_in_state in vop_crtc_atomic_flush Maarten Lankhorst @ 2017-07-12 8:13 ` Maarten Lankhorst 2017-07-12 9:45 ` Daniel Vetter 2017-07-12 10:01 ` Philipp Zabel 1 sibling, 2 replies; 7+ messages in thread From: Maarten Lankhorst @ 2017-07-12 8:13 UTC (permalink / raw) To: linux-arm-kernel for_each_obj_in_state is about to be removed, so use the new atomic iterator macros. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: CK Hu <ck.hu@mediatek.com> Cc: Philipp Zabel <p.zabel@pengutronix.de> Cc: Matthias Brugger <matthias.bgg@gmail.com> Cc: linux-arm-kernel at lists.infradead.org Cc: linux-mediatek at lists.infradead.org --- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 56f802d0a51c..be0741638f94 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -48,11 +48,11 @@ static void mtk_atomic_schedule(struct mtk_drm_private *private, static void mtk_atomic_wait_for_fences(struct drm_atomic_state *state) { struct drm_plane *plane; - struct drm_plane_state *plane_state; + struct drm_plane_state *new_plane_state; int i; - for_each_plane_in_state(state, plane, plane_state, i) - mtk_fb_wait(plane->state->fb); + for_each_new_plane_in_state(state, plane, new_plane_state, i) + mtk_fb_wait(new_plane_state->fb); } static void mtk_atomic_complete(struct mtk_drm_private *private, -- 2.11.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 13/16] drm/mediatek: Convert to new iterator macros 2017-07-12 8:13 ` [PATCH 13/16] drm/mediatek: Convert to new iterator macros Maarten Lankhorst @ 2017-07-12 9:45 ` Daniel Vetter 2017-07-13 16:00 ` Maarten Lankhorst 2017-07-12 10:01 ` Philipp Zabel 1 sibling, 1 reply; 7+ messages in thread From: Daniel Vetter @ 2017-07-12 9:45 UTC (permalink / raw) To: linux-arm-kernel On Wed, Jul 12, 2017 at 10:13:41AM +0200, Maarten Lankhorst wrote: > for_each_obj_in_state is about to be removed, so use the new atomic > iterator macros. > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Matthias Brugger <matthias.bgg@gmail.com> > Cc: linux-arm-kernel at lists.infradead.org > Cc: linux-mediatek at lists.infradead.org > --- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 56f802d0a51c..be0741638f94 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -48,11 +48,11 @@ static void mtk_atomic_schedule(struct mtk_drm_private *private, > static void mtk_atomic_wait_for_fences(struct drm_atomic_state *state) > { > struct drm_plane *plane; > - struct drm_plane_state *plane_state; > + struct drm_plane_state *new_plane_state; > int i; > > - for_each_plane_in_state(state, plane, plane_state, i) > - mtk_fb_wait(plane->state->fb); > + for_each_new_plane_in_state(state, plane, new_plane_state, i) > + mtk_fb_wait(new_plane_state->fb); > } I think a variant of drm_atomic_set_fence_for_plane, which takes a reservation obj (or a dma-buf and then derefs dma_buf->resv itself) would be nice, so that drivers don't have to hand-roll sub-par fence waiting code like this (it's e.g. not interruptible for blocking commits). Anyway, patch itself looks good. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > static void mtk_atomic_complete(struct mtk_drm_private *private, > -- > 2.11.0 > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 13/16] drm/mediatek: Convert to new iterator macros 2017-07-12 9:45 ` Daniel Vetter @ 2017-07-13 16:00 ` Maarten Lankhorst 0 siblings, 0 replies; 7+ messages in thread From: Maarten Lankhorst @ 2017-07-13 16:00 UTC (permalink / raw) To: linux-arm-kernel Op 12-07-17 om 11:45 schreef Daniel Vetter: > On Wed, Jul 12, 2017 at 10:13:41AM +0200, Maarten Lankhorst wrote: >> for_each_obj_in_state is about to be removed, so use the new atomic >> iterator macros. >> >> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >> Cc: CK Hu <ck.hu@mediatek.com> >> Cc: Philipp Zabel <p.zabel@pengutronix.de> >> Cc: Matthias Brugger <matthias.bgg@gmail.com> >> Cc: linux-arm-kernel at lists.infradead.org >> Cc: linux-mediatek at lists.infradead.org >> --- >> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c >> index 56f802d0a51c..be0741638f94 100644 >> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c >> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c >> @@ -48,11 +48,11 @@ static void mtk_atomic_schedule(struct mtk_drm_private *private, >> static void mtk_atomic_wait_for_fences(struct drm_atomic_state *state) >> { >> struct drm_plane *plane; >> - struct drm_plane_state *plane_state; >> + struct drm_plane_state *new_plane_state; >> int i; >> >> - for_each_plane_in_state(state, plane, plane_state, i) >> - mtk_fb_wait(plane->state->fb); >> + for_each_new_plane_in_state(state, plane, new_plane_state, i) >> + mtk_fb_wait(new_plane_state->fb); >> } > I think a variant of drm_atomic_set_fence_for_plane, which takes a > reservation obj (or a dma-buf and then derefs dma_buf->resv itself) would > be nice, so that drivers don't have to hand-roll sub-par fence waiting > code like this (it's e.g. not interruptible for blocking commits). > > Anyway, patch itself looks good. > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Thanks. Pushed patch 1-3, 4 (first hunk only), 5 (with static fix), 6, 8, 9, 11-13. Still hoping for ack from driver maintainers on patch 7 (v2), 10, 14 (v2) and 15 (with the fix daniel spotted). ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 13/16] drm/mediatek: Convert to new iterator macros 2017-07-12 8:13 ` [PATCH 13/16] drm/mediatek: Convert to new iterator macros Maarten Lankhorst 2017-07-12 9:45 ` Daniel Vetter @ 2017-07-12 10:01 ` Philipp Zabel 1 sibling, 0 replies; 7+ messages in thread From: Philipp Zabel @ 2017-07-12 10:01 UTC (permalink / raw) To: linux-arm-kernel On Wed, 2017-07-12 at 10:13 +0200, Maarten Lankhorst wrote: > for_each_obj_in_state is about to be removed, so use the new atomic > iterator macros. > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Cc: Matthias Brugger <matthias.bgg@gmail.com> > Cc: linux-arm-kernel at lists.infradead.org > Cc: linux-mediatek at lists.infradead.org > --- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 56f802d0a51c..be0741638f94 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -48,11 +48,11 @@ static void mtk_atomic_schedule(struct mtk_drm_private *private, > static void mtk_atomic_wait_for_fences(struct drm_atomic_state *state) > { > struct drm_plane *plane; > - struct drm_plane_state *plane_state; > + struct drm_plane_state *new_plane_state; > int i; > > - for_each_plane_in_state(state, plane, plane_state, i) > - mtk_fb_wait(plane->state->fb); > + for_each_new_plane_in_state(state, plane, new_plane_state, i) > + mtk_fb_wait(new_plane_state->fb); > } > > static void mtk_atomic_complete(struct mtk_drm_private *private, Acked-by: Philipp Zabel <p.zabel@pengutronix.de> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-07-13 16:00 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20170712081344.25495-1-maarten.lankhorst@linux.intel.com> 2017-07-12 8:13 ` [PATCH 09/16] drm/rockchip: Use for_each_oldnew_plane_in_state in vop_crtc_atomic_flush Maarten Lankhorst 2017-07-12 9:21 ` Daniel Vetter 2017-07-12 9:41 ` Mark yao 2017-07-12 8:13 ` [PATCH 13/16] drm/mediatek: Convert to new iterator macros Maarten Lankhorst 2017-07-12 9:45 ` Daniel Vetter 2017-07-13 16:00 ` Maarten Lankhorst 2017-07-12 10:01 ` Philipp Zabel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).