drm/vc4: Add correct stop condition to vc4_dsi_encoder_disable iteration
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Thu, 15 Apr 2021 15:18:16 +0000 (16:18 +0100)
committerPhil Elwell <8911409+pelwell@users.noreply.github.com>
Wed, 21 Apr 2021 10:49:20 +0000 (11:49 +0100)
vc4_dsi_encoder_disable is partially an open coded version of
drm_bridge_chain_disable, but it missed a termination condition
in the loop for ->disable which meant that no post_disable
calls were made.

Add in the termination clause.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/gpu/drm/vc4/vc4_dsi.c

index fb0efc6..9861e2d 100644 (file)
@@ -803,6 +803,9 @@ static void vc4_dsi_encoder_disable(struct drm_encoder *encoder)
        list_for_each_entry_reverse(iter, &dsi->bridge_chain, chain_node) {
                if (iter->funcs->disable)
                        iter->funcs->disable(iter);
+
+               if (iter == dsi->bridge)
+                       break;
        }
 
        vc4_dsi_ulps(dsi, true);