Re: [PATCH] drm: bridge: remove error message for EPROBE_DEFER in bridge_attach

From: Laurent Pinchart
Date: Fri Dec 03 2021 - 04:31:57 EST


Hi Yannick,

Thank you for the patch.

On Fri, Dec 03, 2021 at 09:59:31AM +0100, Yannick Fertre wrote:
> Probe deferred is not an error, don't print it.
>
> Signed-off-by: Yannick Fertre <yannick.fertre@xxxxxxxxxxx>
> ---
> drivers/gpu/drm/drm_bridge.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
> index c96847fc0ebc..cef0a62ef5d0 100644
> --- a/drivers/gpu/drm/drm_bridge.c
> +++ b/drivers/gpu/drm/drm_bridge.c
> @@ -288,11 +288,13 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
> list_del(&bridge->chain_node);
>
> #ifdef CONFIG_OF
> - DRM_ERROR("failed to attach bridge %pOF to encoder %s: %d\n",
> - bridge->of_node, encoder->name, ret);
> + if (ret != -EPROBE_DEFER)
> + DRM_ERROR("failed to attach bridge %pOF to encoder %s: %d\n",
> + bridge->of_node, encoder->name, ret);
> #else
> - DRM_ERROR("failed to attach bridge to encoder %s: %d\n",
> - encoder->name, ret);
> + if (ret != -EPROBE_DEFER)
> + DRM_ERROR("failed to attach bridge to encoder %s: %d\n",
> + encoder->name, ret);

It's useful to know about what caused a probe deferral though. There's
now a dev_err_probe() function that prints the message as an dev_err if
the error code is not -EPROBE_DEFER, and as dev_dbg otherwise. It's
meant for probe time only though, so I don't think it can be used here,
but a similar feature could be useful. Or dev_err_probe() could be
extended to support non-probe use cases, but that would be more
difficult.

> #endif
>
> return ret;

--
Regards,

Laurent Pinchart