lt9611_parse_dt() obtains references to the remote DSI nodes before
looking up the downstream bridge. If that lookup fails, for example
with -EPROBE_DEFER, lt9611_probe() returns without releasing the DSI
node references.

Use the existing err_of_put cleanup path when parsing fails. Both node
pointers are zero-initialized, so this also handles a missing DSI node.

Fixes: 23278bf54afe ("drm/bridge: Introduce LT9611 DSI to HDMI bridge")
Cc: [email protected]
Assisted-by: DeepSeek-V4.1-Flash and OpenAI Codex
Signed-off-by: Wentao Liang <[email protected]>
---
 drivers/gpu/drm/bridge/lontium-lt9611.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/lontium-lt9611.c 
b/drivers/gpu/drm/bridge/lontium-lt9611.c
index 2d1a28261037..3c3e91e19fbd 100644
--- a/drivers/gpu/drm/bridge/lontium-lt9611.c
+++ b/drivers/gpu/drm/bridge/lontium-lt9611.c
@@ -1116,7 +1116,7 @@ static int lt9611_probe(struct i2c_client *client)
        ret = lt9611_parse_dt(dev, lt9611);
        if (ret) {
                dev_err(dev, "failed to parse device tree\n");
-               return ret;
+               goto err_of_put;
        }
 
        ret = lt9611_gpio_init(lt9611);
-- 
2.34.1

Reply via email to