Use drm_for_each_bridge_in_chain_scoped() instead of
drm_for_each_bridge_in_chain() to ensure the bridge being looped on is
refcounted.

Signed-off-by: Luca Ceresoli <luca.ceres...@bootlin.com>
---
 drivers/gpu/drm/display/drm_bridge_connector.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c 
b/drivers/gpu/drm/display/drm_bridge_connector.c
index 
65d54019e5eab323ecd3dc568541ed1e1793a683..760ee00b6b02192dc1e59c213ef043a6bb9e3b60
 100644
--- a/drivers/gpu/drm/display/drm_bridge_connector.c
+++ b/drivers/gpu/drm/display/drm_bridge_connector.c
@@ -136,10 +136,9 @@ static void drm_bridge_connector_hpd_notify(struct 
drm_connector *connector,
 {
        struct drm_bridge_connector *bridge_connector =
                to_drm_bridge_connector(connector);
-       struct drm_bridge *bridge;
 
        /* Notify all bridges in the pipeline of hotplug events. */
-       drm_for_each_bridge_in_chain(bridge_connector->encoder, bridge) {
+       drm_for_each_bridge_in_chain_scoped(bridge_connector->encoder, bridge) {
                if (bridge->funcs->hpd_notify)
                        bridge->funcs->hpd_notify(bridge, status);
        }
@@ -638,7 +637,7 @@ struct drm_connector *drm_bridge_connector_init(struct 
drm_device *drm,
        struct drm_bridge_connector *bridge_connector;
        struct drm_connector *connector;
        struct i2c_adapter *ddc = NULL;
-       struct drm_bridge *bridge, *panel_bridge = NULL;
+       struct drm_bridge *panel_bridge = NULL;
        unsigned int supported_formats = BIT(HDMI_COLORSPACE_RGB);
        unsigned int max_bpc = 8;
        int connector_type;
@@ -665,7 +664,7 @@ struct drm_connector *drm_bridge_connector_init(struct 
drm_device *drm,
         * detection are available, we don't support hotplug detection at all.
         */
        connector_type = DRM_MODE_CONNECTOR_Unknown;
-       drm_for_each_bridge_in_chain(encoder, bridge) {
+       drm_for_each_bridge_in_chain_scoped(encoder, bridge) {
                if (!bridge->interlace_allowed)
                        connector->interlace_allowed = false;
                if (!bridge->ycbcr_420_allowed)

-- 
2.50.1

Reply via email to