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: Meng Yi <meng.yi@nxp.com> Signed-off-by: Stefan Agner <stefan@agner.ch>
This commit is contained in:
parent
924591b1f2
commit
c4a304d3b1
|
@ -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);
|
||||
of_node_put(np);
|
||||
if (fsl_dev->connector.panel)
|
||||
if (fsl_dev->connector.panel) {
|
||||
of_node_put(np);
|
||||
return fsl_dcu_attach_panel(fsl_dev, fsl_dev->connector.panel);
|
||||
}
|
||||
|
||||
return -ENODEV;
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue