On 2016-07-14 03:54, Meng Yi wrote:
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
Changes since V1:
-no change
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c index 2e71f4b..e875b4e 100644 --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c @@ -189,6 +189,7 @@ err_cleanup: 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; int ret;
@@ -201,7 +202,17 @@ static int fsl_dcu_attach_endpoint(struct fsl_dcu_drm_device *fsl_dev, return ret; }
- return -ENODEV;
- bridge = of_drm_find_bridge(np);
Since you need np here again, you need to move the of_node_put above back into the if statement...
- of_node_put(np);
- if (!bridge)
return -ENODEV;
- fsl_dev->encoder.bridge = bridge;
- bridge->encoder = &fsl_dev->encoder;
- ret = drm_bridge_attach(fsl_dev->drm, bridge);
- return ret;
Also simplify this return statement.
-- Stefan
}
int fsl_dcu_create_outputs(struct fsl_dcu_drm_device *fsl_dev)