Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e15174e authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Archit Taneja
Browse files

drm: bridge: Detach all bridges in a chain at encoder cleanup time



Instead of detaching only the bridge directly connected to the encoder,
detach all bridges in the chain.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1481709550-29226-6-git-send-email-laurent.pinchart+renesas@ideasonboard.com
parent 4a878c03
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -159,8 +159,16 @@ void drm_encoder_cleanup(struct drm_encoder *encoder)
	 * the indices on the drm_encoder after us in the encoder_list.
	 */

	if (encoder->bridge)
		drm_bridge_detach(encoder->bridge);
	if (encoder->bridge) {
		struct drm_bridge *bridge = encoder->bridge;
		struct drm_bridge *next;

		while (bridge) {
			next = bridge->next;
			drm_bridge_detach(bridge);
			bridge = next;
		}
	}

	drm_mode_object_unregister(dev, &encoder->base);
	kfree(encoder->name);