Re: [PATCH v2] drm/imx: imx-ldb: Accept drm_of_find_panel_or_bridge failure
From: Philipp Zabel
Date: Wed May 10 2017 - 09:56:10 EST
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@xxxxxxx>
>
> ---
>
> 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