Re: [PATCH 0/2] media: intel-ipu3: allow the media graph to be used even if a subdev fails

From: Mauro Carvalho Chehab
Date: Thu Sep 27 2018 - 06:13:59 EST


Em Thu, 27 Sep 2018 11:52:35 +0200
Hans Verkuil <hverkuil@xxxxxxxxx> escreveu:

> Hi Javier,
>
> On 09/04/2018 01:30 PM, Javier Martinez Canillas wrote:
> > Hello,
> >
> > This series allows the ipu3-cio2 driver to properly expose a subset of the
> > media graph even if some drivers for the pending subdevices fail to probe.
> >
> > Currently the driver exposes a non-functional graph since the pad links are
> > created and the subdev dev nodes are registered in the v4l2 async .complete
> > callback. Instead, these operations should be done in the .bound callback.
> >
> > Patch #1 just adds a v4l2_device_register_subdev_node() function to allow
> > registering a single device node for a subdev of a v4l2 device.
> >
> > Patch #2 moves the logic of the ipu3-cio2 .complete callback to the .bound
> > callback. The .complete callback is just removed since is empy after that.
>
> Sorry, I missed this series until you pointed to it on irc just now :-)
>
> I have discussed this topic before with Sakari and Laurent. My main problem
> with this is how an application can discover that not everything is online?
> And which parts are offline?

Via the media controller? It should be possible for an application to see
if a videonode is missing using it.

> Perhaps a car with 10 cameras can function with 9, but not with 8. How would
> userspace know?

I guess this is not the only case where someone submitted a patch for
a driver that would keep working if some device node registration fails.

It could be just dÃjà vu, but I have a vague sensation that I merged something
similar to it in the past on another driver, but I can't remember any details.

>
> I completely agree that we need to support these advanced scenarios (including
> what happens when a camera suddenly fails), but it is the userspace aspects
> for which I would like to see an RFC first before you can do these things.

Dynamic runtime fails should likely rise some signal. Perhaps a sort of
media controller event?

>
> Regards,
>
> Hans
>
> >
> > Best regards,
> > Javier
> >
> >
> > Javier Martinez Canillas (2):
> > [media] v4l: allow to register dev nodes for individual v4l2 subdevs
> > media: intel-ipu3: create pad links and register subdev nodes at bound
> > time
> >
> > drivers/media/pci/intel/ipu3/ipu3-cio2.c | 66 ++++++-----------
> > drivers/media/v4l2-core/v4l2-device.c | 90 ++++++++++++++----------
> > include/media/v4l2-device.h | 10 +++
> > 3 files changed, 85 insertions(+), 81 deletions(-)
> >
>



Thanks,
Mauro