Use drm_bridge_chain_get_last_bridge() instead of open coding a loop with
two invocations of drm_bridge_get_next_bridge() per iteration.

Besides being cleaner and more efficient, this change is necessary in
preparation for drm_bridge_get_next_bridge() to get a reference to the
returned bridge.

Signed-off-by: Luca Ceresoli <[email protected]>
---
 drivers/gpu/drm/omapdrm/omap_drv.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c 
b/drivers/gpu/drm/omapdrm/omap_drv.c
index 
054b71dba6a75b8c42198c4b102a093f43a675a2..3bbcec01428a6f290afdfa40ef6f79629539a584
 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -378,12 +378,12 @@ static int omap_display_id(struct omap_dss_device *output)
        struct device_node *node = NULL;
 
        if (output->bridge) {
-               struct drm_bridge *bridge = output->bridge;
-
-               while (drm_bridge_get_next_bridge(bridge))
-                       bridge = drm_bridge_get_next_bridge(bridge);
+               struct drm_bridge *bridge =
+                       
drm_bridge_chain_get_last_bridge(output->bridge->encoder);
 
                node = bridge->of_node;
+
+               drm_bridge_put(bridge);
        }
 
        return node ? of_alias_get_id(node, "display") : -ENODEV;

-- 
2.50.0

Reply via email to