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

From: Hans Verkuil
Date: Thu Sep 27 2018 - 06:22:44 EST


On 09/27/2018 12:13 PM, Mauro Carvalho Chehab wrote:
> 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?

See this old discussion: https://patchwork.kernel.org/patch/9849317/

My point is that someone needs to think about this and make a proposal.
There may well be a simple approach, but it needs to be specced first.

Regards,

Hans

>
>>
>> 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
>