[PATCH v3 2/2] drm/fsl-dcu: add support for drm bridge
Stefan Agner
stefan at agner.ch
Fri Jul 15 04:29:36 UTC 2016
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 at 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)
More information about the dri-devel
mailing list