[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1494417009.2422.4.camel@pengutronix.de>
Date: Wed, 10 May 2017 13:50:09 +0200
From: Philipp Zabel <p.zabel@...gutronix.de>
To: Leonard Crestez <leonard.crestez@....com>
Cc: Rob Herring <robh@...nel.org>, David Airlie <airlied@...ux.ie>,
Daniel Vetter <daniel.vetter@...el.com>,
Jani Nikula <jani.nikula@...ux.intel.com>,
Sean Paul <seanpaul@...omium.org>,
Archit Taneja <architt@...eaurora.org>,
Liu Ying <gnuiyl@...il.com>,
Lucas Stach <l.stach@...gutronix.de>,
Steve Longerbeam <steve_longerbeam@...tor.com>,
Peter Senna Tschudin <peter.senna@...labora.com>,
Cristina Ciocan <cristina-mihaela.ciocan@....com>,
Octavian Purdila <octavian.purdila@....com>,
dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] drm/imx: imx-ldb: Accept drm_of_find_panel_or_bridge
failure
Hi Leonard,
thank you for the patch. Comment below.
On Wed, 2017-05-10 at 13:57 +0300, Leonard Crestez wrote:
> Not having an endpoint bound in DT should not cause a failure here,
> there are fallbacks. So let's 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@....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?
>
> 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..4c8a521 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 != -ENODEV)
That should be
if (ret && ret != -ENODEV)
as we don't want to return here if a panel or bridge was found.
regards
Philipp
Powered by blists - more mailing lists