Messages in this thread | | | Subject | Re: [PATCH] drm/bridge: Ignore -EPROBE_DEFER when bridge attach fails | From | Andrzej Hajda <> | Date | Wed, 13 Oct 2021 08:48:32 +0200 |
| |
On 12.10.2021 22:47, Guido Günther wrote: > Hi Laurent, > On Tue, Oct 12, 2021 at 11:17:07PM +0300, Laurent Pinchart wrote: >> Hi Guido, >> >> Thank you for the patch. >> >> On Tue, Oct 12, 2021 at 09:58:58PM +0200, Guido Günther wrote: >>> Otherwise logs are filled with >>> >>> [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/bus@30800000/mipi-dsi@30a0 0000 to encoder None-34: -517 >>> >>> when the bridge isn't ready yet. >>> >>> Fixes: fb8d617f8fd6 ("drm/bridge: Centralize error message when bridge attach fails") >>> Signed-off-by: Guido Günther <agx@sigxcpu.org> >>> --- >>> drivers/gpu/drm/drm_bridge.c | 11 ++++++----- >>> 1 file changed, 6 insertions(+), 5 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c >>> index a8ed66751c2d..f0508e85ae98 100644 >>> --- a/drivers/gpu/drm/drm_bridge.c >>> +++ b/drivers/gpu/drm/drm_bridge.c >>> @@ -227,14 +227,15 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge, >>> bridge->encoder = NULL; >>> list_del(&bridge->chain_node); >>> >>> + if (ret != -EPROBE_DEFER) { >>> #ifdef CONFIG_OF >>> - DRM_ERROR("failed to attach bridge %pOF to encoder %s: %d\n", >>> - bridge->of_node, encoder->name, ret); >>> + 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); >>> + DRM_ERROR("failed to attach bridge to encoder %s: %d\n", >>> + encoder->name, ret); >>> #endif >>> - >>> + } >> >> This looks fine as such, but I'm concerned about the direction it's >> taking. Ideally, probe deferral should happen at probe time, way before >> the bridge is attached. Doing otherwise is a step in the wrong direction >> in my opinion, and something we'll end up regretting when we'll feel the >> pain it inflicts. > > The particular case I'm seeing this is the nwl driver probe deferrals if > the panel bridge isn't ready (which needs a bunch of components > (dsi, panel, backlight wrapped led, ...) and it probes fine later on so I > wonder where you see the actual error cause? That downstream of the > bridge isn't ready or that the display controller is already attaching > the bridge?
So it is something wrong there, nwl should not publish bridge interface until it gather its resources (the panel in this case).
Regards Andrzej
> > Cheers, > -- Guido > >> >>> return ret; >>> } >>> EXPORT_SYMBOL(drm_bridge_attach); >> >> -- >> Regards, >> >> Laurent Pinchart >>
| |