[PATCH v2] drm/imx: imx-ldb: Accept drm_of_find_panel_or_bridge failure

Philipp Zabel p.zabel at pengutronix.de
Wed May 10 13:55:50 UTC 2017


On Wed, 2017-05-10 at 16:17 +0300, Leonard Crestez wrote:
> Not having an endpoint bound in DT should not cause a failure here,
> there are fallbacks. So explicitly accept a missing endpoint.
> 
> This behavior change was introduced by refactoring in drm_of parsing
> code and it should not require dts changes.
> 
> In particular this fixes imx6qdl-sabreauto boards.
> 
> Link: https://lists.freedesktop.org/archives/dri-devel/2017-May/141233.html
> Fixes: ebc944613567 ("drm: convert drivers to use drm_of_find_panel_or_bridge")
> Signed-off-by: Leonard Crestez <leonard.crestez at nxp.com>
> 
> ---
> 
> This relies on drm_of_find_panel_or_bridge returning -ENODEV
> specifically if no remote is found for the endpoint. This behavior can
> be seen by looking at the code but is not otherwise obviously
> guaranteed.
> 
> Perhaps this should be explicitly mentioned in that function's
> documentation?
> 
> Changes since v1:
> * Fix returning if ret is 0.
> 
>  drivers/gpu/drm/imx/imx-ldb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index 8fb801f..8b05ecb 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -673,7 +673,7 @@ static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
>  		ret = drm_of_find_panel_or_bridge(child,
>  						  imx_ldb->lvds_mux ? 4 : 2, 0,
>  						  &channel->panel, &channel->bridge);
> -		if (ret)
> +		if (ret && ret != -ENODEV)
>  			return ret;
>  
>  		/* panel ddc only if there is no bridge */

Thank you, applied to imx-drm/fixes.

regards
Philipp



More information about the dri-devel mailing list