Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/omap: use drm_for_each_bridge_in_chain_from()

Use drm_for_each_bridge_in_chain_from _scoped() instead of an open-coded
loop based on drm_bridge_get_next_bridge() to ensure the bridge being
looped on is refcounted and simplify the driver code.

Reviewed-by: Maxime Ripard <mripard@kernel.org>
Link: https://lore.kernel.org/r/20250808-drm-bridge-alloc-getput-for_each_bridge-v2-9-edb6ee81edf1@bootlin.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>

+1 -3
+1 -3
drivers/gpu/drm/omapdrm/omap_encoder.c
··· 77 77 struct omap_dss_device *output = omap_encoder->output; 78 78 struct drm_device *dev = encoder->dev; 79 79 struct drm_connector *connector; 80 - struct drm_bridge *bridge; 81 80 struct videomode vm = { 0 }; 82 81 u32 bus_flags; 83 82 ··· 96 97 * 97 98 * A better solution is to use DRM's bus-flags through the whole driver. 98 99 */ 99 - for (bridge = output->bridge; bridge; 100 - bridge = drm_bridge_get_next_bridge(bridge)) { 100 + drm_for_each_bridge_in_chain_from(output->bridge, bridge) { 101 101 if (!bridge->timings) 102 102 continue; 103 103