drm/bridge: lvds-codec: Simplify panel DT node localisation
authorFabrizio Castro <fabrizio.castro@bp.renesas.com>
Wed, 13 Nov 2019 15:51:26 +0000 (15:51 +0000)
committerNeil Armstrong <narmstrong@baylibre.com>
Wed, 18 Dec 2019 11:26:09 +0000 (12:26 +0100)
The probe function needs to get ahold of the panel device tree
node, and it achieves that by using a combination of
of_graph_get_port_by_id, of_get_child_by_name, and
of_graph_get_remote_port_parent. We can achieve the same goal
by replacing those calls with a call to of_graph_get_remote_node
these days.

Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1573660292-10629-8-git-send-email-fabrizio.castro@bp.renesas.com
drivers/gpu/drm/bridge/lvds-codec.c

index d072a76..5f04cc1 100644 (file)
@@ -57,8 +57,6 @@ static struct drm_bridge_funcs funcs = {
 static int lvds_codec_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
-       struct device_node *port;
-       struct device_node *endpoint;
        struct device_node *panel_node;
        struct drm_panel *panel;
        struct lvds_codec *lvds_codec;
@@ -79,23 +77,9 @@ static int lvds_codec_probe(struct platform_device *pdev)
        }
 
        /* Locate the panel DT node. */
-       port = of_graph_get_port_by_id(dev->of_node, 1);
-       if (!port) {
-               dev_dbg(dev, "port 1 not found\n");
-               return -ENXIO;
-       }
-
-       endpoint = of_get_child_by_name(port, "endpoint");
-       of_node_put(port);
-       if (!endpoint) {
-               dev_dbg(dev, "no endpoint for port 1\n");
-               return -ENXIO;
-       }
-
-       panel_node = of_graph_get_remote_port_parent(endpoint);
-       of_node_put(endpoint);
+       panel_node = of_graph_get_remote_node(dev->of_node, 1, 0);
        if (!panel_node) {
-               dev_dbg(dev, "no remote endpoint for port 1\n");
+               dev_dbg(dev, "panel DT node not found\n");
                return -ENXIO;
        }