diff options
| author | Stephen Boyd <sboyd@codeaurora.org> | 2015-10-02 11:15:13 -0700 | 
|---|---|---|
| committer | Stephen Boyd <sboyd@codeaurora.org> | 2015-10-02 11:22:23 -0700 | 
| commit | 9f30a04d768f64280dc0c40b730746e82f298d88 (patch) | |
| tree | e112853eb73627ed7b9a2ef8e4feab6685a0200e /drivers/gpu/drm/imx/parallel-display.c | |
| parent | 9e294bf88a583825a413df408b9fe9e658fb93ac (diff) | |
| parent | 7aba4f5201d1b7b3ddb0b03883d9edf69851ddad (diff) | |
Merge branch 'for-4.3-rc/ti-clk-fixes' of https://github.com/t-kristo/linux-pm into clk-fixes
Pull fixes from Tero Kristo:
"A few TI clock driver fixes to pull against 4.3-rc"
* 'for-4.3-rc/ti-clk-fixes' of https://github.com/t-kristo/linux-pm: (3 commits)
  clk: ti: dflt: fix enable_reg validity check
  clk: ti: fix dual-registration of uart4_ick
  clk: ti: clk-7xx: Remove hardwired ABE clock configuration
Diffstat (limited to 'drivers/gpu/drm/imx/parallel-display.c')
| -rw-r--r-- | drivers/gpu/drm/imx/parallel-display.c | 21 | 
1 files changed, 15 insertions, 6 deletions
diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c index 74a9ce40ddc4..b4deb9cf9d71 100644 --- a/drivers/gpu/drm/imx/parallel-display.c +++ b/drivers/gpu/drm/imx/parallel-display.c @@ -21,6 +21,7 @@  #include <drm/drm_panel.h>  #include <linux/videodev2.h>  #include <video/of_display_timing.h> +#include <linux/of_graph.h>  #include "imx-drm.h" @@ -208,7 +209,7 @@ static int imx_pd_bind(struct device *dev, struct device *master, void *data)  {  	struct drm_device *drm = data;  	struct device_node *np = dev->of_node; -	struct device_node *panel_node; +	struct device_node *port;  	const u8 *edidp;  	struct imx_parallel_display *imxpd;  	int ret; @@ -234,11 +235,19 @@ static int imx_pd_bind(struct device *dev, struct device *master, void *data)  			imxpd->bus_format = MEDIA_BUS_FMT_RGB666_1X24_CPADHI;  	} -	panel_node = of_parse_phandle(np, "fsl,panel", 0); -	if (panel_node) { -		imxpd->panel = of_drm_find_panel(panel_node); -		if (!imxpd->panel) -			return -EPROBE_DEFER; +	/* port@1 is the output port */ +	port = of_graph_get_port_by_id(np, 1); +	if (port) { +		struct device_node *endpoint, *remote; + +		endpoint = of_get_child_by_name(port, "endpoint"); +		if (endpoint) { +			remote = of_graph_get_remote_port_parent(endpoint); +			if (remote) +				imxpd->panel = of_drm_find_panel(remote); +			if (!imxpd->panel) +				return -EPROBE_DEFER; +		}  	}  	imxpd->dev = dev;  | 
