Patch "drm: bridge: it66121: Fix return value it66121_probe" has been added to the 5.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm: bridge: it66121: Fix return value it66121_probe

to the 5.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-bridge-it66121-fix-return-value-it66121_probe.patch
and it can be found in the queue-5.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8f8195e66c2b5e48faa79c1694cb29f5a6e3ebe9
Author: Alex Bee <knaerzche@xxxxxxxxx>
Date:   Sat Sep 18 16:04:20 2021 +0200

    drm: bridge: it66121: Fix return value it66121_probe
    
    [ Upstream commit f3bc07eba481942a246926c5b934199e7ccd567b ]
    
    Currently it66121_probe returns -EPROBE_DEFER if the there is no remote
    endpoint found in the device tree which doesn't seem helpful, since this
    is not going to change later and it is never checked if the next bridge
    has been initialized yet. It will fail in that case later while doing
    drm_bridge_attach for the next bridge in it66121_bridge_attach.
    
    Since the bindings documentation for it66121 bridge driver states
    there has to be a remote endpoint defined, its safe to return -EINVAL
    in that case.
    This additonally adds a check, if the remote endpoint is enabled and
    returns -EPROBE_DEFER, if the remote bridge hasn't been initialized
    (yet).
    
    Fixes: 988156dc2fc9 ("drm: bridge: add it66121 driver")
    Signed-off-by: Alex Bee <knaerzche@xxxxxxxxx>
    Signed-off-by: Robert Foss <robert.foss@xxxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210918140420.231346-1-knaerzche@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/bridge/ite-it66121.c b/drivers/gpu/drm/bridge/ite-it66121.c
index 9dc41a7b91362..06b59b422c696 100644
--- a/drivers/gpu/drm/bridge/ite-it66121.c
+++ b/drivers/gpu/drm/bridge/ite-it66121.c
@@ -918,11 +918,23 @@ static int it66121_probe(struct i2c_client *client,
 		return -EINVAL;
 
 	ep = of_graph_get_remote_node(dev->of_node, 1, -1);
-	if (!ep)
-		return -EPROBE_DEFER;
+	if (!ep) {
+		dev_err(ctx->dev, "The endpoint is unconnected\n");
+		return -EINVAL;
+	}
+
+	if (!of_device_is_available(ep)) {
+		of_node_put(ep);
+		dev_err(ctx->dev, "The remote device is disabled\n");
+		return -ENODEV;
+	}
 
 	ctx->next_bridge = of_drm_find_bridge(ep);
 	of_node_put(ep);
+	if (!ctx->next_bridge) {
+		dev_dbg(ctx->dev, "Next bridge not found, deferring probe\n");
+		return -EPROBE_DEFER;
+	}
 
 	if (!ctx->next_bridge)
 		return -EPROBE_DEFER;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux