Hi Doug, Thank you for the patch.
On Fri, Apr 02, 2021 at 03:28:35PM -0700, Douglas Anderson wrote: > The drm_bridge_chain_pre_enable() is not the proper opposite of > drm_bridge_chain_post_disable(). It continues along the chain to > _before_ the starting bridge. Let's fix that. > > Fixes: 05193dc38197 ("drm/bridge: Make the bridge chain a double-linked list") > Signed-off-by: Douglas Anderson <diand...@chromium.org> > Reviewed-by: Andrzej Hajda <a.ha...@samsung.com> > --- > > (no changes since v1) > > drivers/gpu/drm/drm_bridge.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c > index 64f0effb52ac..044acd07c153 100644 > --- a/drivers/gpu/drm/drm_bridge.c > +++ b/drivers/gpu/drm/drm_bridge.c > @@ -522,6 +522,9 @@ void drm_bridge_chain_pre_enable(struct drm_bridge > *bridge) > list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { > if (iter->funcs->pre_enable) > iter->funcs->pre_enable(iter); > + > + if (iter == bridge) > + break; This looks good as it matches drm_atomic_bridge_chain_disable(). Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com> I'm curious though, given that the bridge passed to the function should be the one closest to the encoder, does this make a difference ? > } > } > EXPORT_SYMBOL(drm_bridge_chain_pre_enable); -- Regards, Laurent Pinchart