Hi Hans, On Mon, Oct 31, 2022 at 01:36:27PM +0100, Hans Verkuil wrote: > Hi Dave, > > On 31/10/2022 13:27, Dave Stevenson wrote: > > Hi Hans & Sakari > > > > A question raised from review of [1]: > > > > Is it correct that any subdevice driver that supports any controls > > should advertise V4L2_SUBDEV_FL_HAS_EVENTS and have > > subscribe_event/unsubscribe_event core_ops? > > > > I added that patch for ov9282 to resolve a v4l2-compliance failure: > > fail: v4l2-test-controls.cpp(835): subscribe event for control 'User > > Controls' failed > > test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL > > but it surprised Jacopo, and he has observed that many of the current > > drivers with controls don't meet this requirement. > > > > I just wanted confirmation from those in the know. > > It should only be needed if V4L2_SUBDEV_FL_HAS_DEVNODE is also set in the > subdev driver. If HAS_DEVNODE is set, and there are controls, then HAS_EVENTS > must be set and you have to be able to (un)subscribe to events. Most relatively recent sensor drivers have a devnode and register controls. I wonder if the core could detect this and install the callback handlers if the two flags are set, as relying on drivers doing that clearly is not working well :) > > Because the controls can be exposed to userspace via a v4l-subdevX device, and > userspace has to be able to subscribe to control events so that it is > notified when the control changes value. > > The compliance testing of v4l-subdev devices isn't that old, so a lot of older > subdev drivers where never checked for compliance. > > Regards, > > Hans > > > > > Thanks > > Dave > > > > [1] https://patchwork.linuxtv.org/project/linux-media/patch/20221005152809.3785786-17-dave.stevenson@xxxxxxxxxxxxxxx/ >