Hi Dave, Thank you for the patch. On Mon, Nov 16, 2020 at 02:22:44PM +0100, Dafna Hirschfeld wrote: > The flag V4L2_SUBDEV_FL_HAS_EVENTS is required if the subdev can > generate events. It can create events from the ctrl handler, therefore > this is required. > > Signed-off-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx> > Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@xxxxxxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> We should probably revisit this in the V4L2 core, as all subdevs that handle controls can generate events, it shouldn't need to be manually implemented in each of them. > --- > This patch fixes compliance issues found in imx219: > > fail: v4l2-test-controls.cpp(830): failed to find event for control 'Exposure' > test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL > > drivers/media/i2c/imx219.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c > index ef2b1a6a0f4a..ba1c5e59ddf4 100644 > --- a/drivers/media/i2c/imx219.c > +++ b/drivers/media/i2c/imx219.c > @@ -1503,7 +1503,8 @@ static int imx219_probe(struct i2c_client *client) > > /* Initialize subdev */ > imx219->sd.internal_ops = &imx219_internal_ops; > - imx219->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; > + imx219->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | > + V4L2_SUBDEV_FL_HAS_EVENTS; > imx219->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; > > /* Initialize source pad */ -- Regards, Laurent Pinchart