drm/sun4i: Set drm_crtc.port to the underlying TCON's output port node
authorChen-Yu Tsai <wens@csie.org>
Thu, 23 Feb 2017 08:05:34 +0000 (16:05 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Mar 2018 08:17:37 +0000 (09:17 +0100)
[ Upstream commit 7544860733d158e3edbf309f27e79e258c8f66bd ]

The way drm_of_find_possible_crtcs works is it tries to match the
remote-endpoint of the given node's various endpoints to all the
crtc's .port field. Thus we need to set drm_crtc.port to the output
port node of the underlying TCON.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/sun4i/sun4i_crtc.c

index 4a192210574f5ed442d09e33babb8697eacd4bad..caba0311c86cef3b96f6532f0ac204756e6725e7 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/clk-provider.h>
 #include <linux/ioport.h>
 #include <linux/of_address.h>
+#include <linux/of_graph.h>
 #include <linux/of_irq.h>
 #include <linux/regmap.h>
 
@@ -136,5 +137,9 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm)
 
        drm_crtc_helper_add(&scrtc->crtc, &sun4i_crtc_helper_funcs);
 
+       /* Set crtc.port to output port node of the tcon */
+       scrtc->crtc.port = of_graph_get_port_by_id(drv->tcon->dev->of_node,
+                                                  1);
+
        return scrtc;
 }