Hi Philippe, Reviewed-by: Yannick Fertré <yannick.fertre@xxxxxx> On 04/17/2018 01:34 PM, Philippe Cornu wrote: > When a driver related to one of the endpoints is deferred > due to probe dependencies (i2c, spi...) but the other one > is ready, ltdc probe continues and the deferred driver > will never be probed again. > > The fix consists in waiting for all deferred endpoints before > continuing the ltdc probe. > > Signed-off-by: Philippe Cornu <philippe.cornu@xxxxxx> > --- > drivers/gpu/drm/stm/ltdc.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c > index e3121d9e4230..014cef8cef37 100644 > --- a/drivers/gpu/drm/stm/ltdc.c > +++ b/drivers/gpu/drm/stm/ltdc.c > @@ -987,14 +987,13 @@ int ltdc_load(struct drm_device *ddev) > &bridge[i]); > > /* > - * If at least one endpoint is ready, continue probing, > - * else if at least one endpoint is -EPROBE_DEFER and > - * there is no previous ready endpoints, defer probing. > + * If at least one endpoint is -EPROBE_DEFER, defer probing, > + * else if at least one endpoint is ready, continue probing. > */ > - if (!ret) > + if (ret == -EPROBE_DEFER) > + return ret; > + else if (!ret) > endpoint_not_ready = 0; > - else if (ret == -EPROBE_DEFER && endpoint_not_ready) > - endpoint_not_ready = -EPROBE_DEFER; > } > > if (endpoint_not_ready) > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel