On Mon, Apr 06, 2020 at 11:41:33AM -0300, Fabio Estevam wrote: > On Mon, Apr 6, 2020 at 10:37 AM Fabio Estevam <festevam@xxxxxxxxx> wrote: > > > > Hi, > > > > I am running kernel 5.6.2 on an imx6qp sabresd, but I cannot get the > > mem2mem element from imx-media-csc-scaler.c to probe. > > > > I don't see imx6_media_probe_complete() getting called, hence > > imx_media_csc_scaler_device_init() is never called and no mem2mem > > element is registered. > > > > Any ideas as to how to get mem2mem registered on i.MX6? > > It seems that v4l2_async_notifier_can_complete() is always false, so > v4l2_async_notifier_call_complete() is never called. > > If I change it like this: > > --- a/drivers/media/v4l2-core/v4l2-async.c > +++ b/drivers/media/v4l2-core/v4l2-async.c > @@ -213,10 +213,6 @@ v4l2_async_notifier_try_complete(struct > v4l2_async_notifier *notifier) > if (!notifier->v4l2_dev) > return 0; > > - /* Is everything ready? */ > - if (!v4l2_async_notifier_can_complete(notifier)) > - return 0; > - > return v4l2_async_notifier_call_complete(notifier); > } > > Then the mem2mem driver can be successfully probed: > > [ 4.601350] imx-media: Registered ipu_ic_pp csc/scaler as /dev/video11 > > Any suggestions? There are basically async sub-devices that haven't been yet bound in the notifier. Once they are, then the device registration will continue. -- Sakari Ailus