Re: [RFC 00/19] Async sub-notifiers and how to use them

Sakari Ailus
2017-08-05T08:01:44Z

Niklas Söderlund wrote:
> Hi Sakari,
>
> On 2017-07-20 19:14:01 +0300, Sakari Ailus wrote:
>> Hi Hans,
>>
>> Thanks for the review.
>>
>> On Wed, Jul 19, 2017 at 01:42:55PM +0200, Hans Verkuil wrote:
>>> On 18/07/17 21:03, Sakari Ailus wrote:
>>>> Hi folks,
>>>>
>>>> This RFC patchset achieves a number of things which I've put to the same
>>>> patchset for they need to be show together to demonstrate the use cases.
>>>>
>>>> I don't really intend this to compete with Niklas's patchset but much of
>>>> the problem area addressed by the two is the same.
>>>>
>>>> Comments would be welcome.
>>>>
>>>> - Add AS3645A LED flash class driver.
>>>>
>>>> - Add async notifiers (by Niklas).
>>>>
>>>> - V4L2 sub-device node registration is moved to take place at the same time
>>>> with the registration of the sub-device itself. With this change,
>>>> sub-device node registration behaviour is aligned with video node
>>>> registration.
>>>>
>>>> - The former is made possible by moving the bound() callback after
>>>> sub-device registration.
>>>>
>>>> - As all the device node registration and link creation is done as the
>>>> respective devices are probed, there is no longer dependency to the
>>>> notifier complete callback which as itself is seen problematic. The
>>>> complete callback still exists but there's no need to use it, pending
>>>> changes in individual drivers.
>>>>
>>>> See:
>>>> <URL:http://www.spinics.net/lists/linux-media/msg118323.html>
>>>>
>>>> As a result, if a part of the media device fails to initialise because it
>>>> is e.g. physically broken, it will be possible to use what works.
>>>
>>> I've got major problems with this from a userspace point of view. In the vast
>>> majority of cases you just want to bail out if one or more subdevs fail.
>>
>> I admit it's easier for the user space if the device becomes available only
>> when all its component drivers have registered.
>>
>> Also remember that video nodes are registered in the file system right on
>> device probe time. It's only sub-device and media device node registration
>> that has taken place in the notifier's complete handler.
>
> Is this always the case? In the R-Car VIN driver I register the video
> devices using video_register_device() in the complete handler. Am I
> doing things wrong in that driver? I had a patch where I moved the
> video_register_device() call to probe time but it got shoot down in
> review and was dropped.

I don't think the current implementation is wrong, it's just different
from other drivers; there's really no requirement regarding this AFAIU.
It's one of the things where no attention has been paid I presume.

However doing anything that can fail earlier on would be nicer since
there's no reasonable way to signal an error from complete callback either.

--
Regards,

Sakari Ailus
sakari.ailus@iki.fi