Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4a304d3 authored by Meng Yi's avatar Meng Yi Committed by Stefan Agner
Browse files

drm/fsl-dcu: add support for drm bridge



The current output code only supports connection to drm panels.
Add code to support drm bridge, to support connections to
external connectors.

Signed-off-by: default avatarMeng Yi <meng.yi@nxp.com>
Signed-off-by: default avatarStefan Agner <stefan@agner.ch>
parent 924591b1
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -180,16 +180,26 @@ static int fsl_dcu_attach_panel(struct fsl_dcu_drm_device *fsl_dev,
static int fsl_dcu_attach_endpoint(struct fsl_dcu_drm_device *fsl_dev,
				   const struct of_endpoint *ep)
{
	struct drm_bridge *bridge;
	struct device_node *np;

	np = of_graph_get_remote_port_parent(ep->local_node);

	fsl_dev->connector.panel = of_drm_find_panel(np);
	if (fsl_dev->connector.panel) {
		of_node_put(np);
	if (fsl_dev->connector.panel)
		return fsl_dcu_attach_panel(fsl_dev, fsl_dev->connector.panel);
	}

	bridge = of_drm_find_bridge(np);
	of_node_put(np);
	if (!bridge)
		return -ENODEV;

	fsl_dev->encoder.bridge = bridge;
	bridge->encoder = &fsl_dev->encoder;

	return drm_bridge_attach(fsl_dev->drm, bridge);
}

int fsl_dcu_create_outputs(struct fsl_dcu_drm_device *fsl_dev)