Add kernel patches for version 6.1. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
67 lines
2.2 KiB
Diff
67 lines
2.2 KiB
Diff
From 418b65e7035604266a598945beebdc30f6d58458 Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Thu, 16 Feb 2023 00:29:53 +0200
|
|
Subject: [PATCH] media: i2c: imx290: Add V4L2_SUBDEV_FL_HAS_EVENTS and
|
|
subscribe hooks
|
|
|
|
Should be upstream commit 5f9dee39ab55
|
|
|
|
Any V4L2 subdevice that implements controls and declares
|
|
V4L2_SUBDEV_FL_HAS_DEVNODE should also declare V4L2_SUBDEV_FL_HAS_EVENTS
|
|
and implement subscribe_event and unsubscribe_event hooks.
|
|
|
|
This driver didn't and would therefore fail v4l2-compliance
|
|
testing.
|
|
|
|
Add the relevant hooks.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Reviewed-by: Alexander Stein <alexander.stein@ew.tq-group.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
|
|
---
|
|
drivers/media/i2c/imx290.c | 10 +++++++++-
|
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/media/i2c/imx290.c
|
|
+++ b/drivers/media/i2c/imx290.c
|
|
@@ -23,6 +23,7 @@
|
|
#include <media/media-entity.h>
|
|
#include <media/v4l2-ctrls.h>
|
|
#include <media/v4l2-device.h>
|
|
+#include <media/v4l2-event.h>
|
|
#include <media/v4l2-fwnode.h>
|
|
#include <media/v4l2-subdev.h>
|
|
|
|
@@ -998,6 +999,11 @@ static int imx290_entity_init_cfg(struct
|
|
return 0;
|
|
}
|
|
|
|
+static const struct v4l2_subdev_core_ops imx290_core_ops = {
|
|
+ .subscribe_event = v4l2_ctrl_subdev_subscribe_event,
|
|
+ .unsubscribe_event = v4l2_event_subdev_unsubscribe,
|
|
+};
|
|
+
|
|
static const struct v4l2_subdev_video_ops imx290_video_ops = {
|
|
.s_stream = imx290_set_stream,
|
|
};
|
|
@@ -1012,6 +1018,7 @@ static const struct v4l2_subdev_pad_ops
|
|
};
|
|
|
|
static const struct v4l2_subdev_ops imx290_subdev_ops = {
|
|
+ .core = &imx290_core_ops,
|
|
.video = &imx290_video_ops,
|
|
.pad = &imx290_pad_ops,
|
|
};
|
|
@@ -1030,7 +1037,8 @@ static int imx290_subdev_init(struct imx
|
|
imx290->current_mode = &imx290_modes_ptr(imx290)[0];
|
|
|
|
v4l2_i2c_subdev_init(&imx290->sd, client, &imx290_subdev_ops);
|
|
- imx290->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
|
|
+ imx290->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
|
|
+ V4L2_SUBDEV_FL_HAS_EVENTS;
|
|
imx290->sd.dev = imx290->dev;
|
|
imx290->sd.entity.ops = &imx290_subdev_entity_ops;
|
|
imx290->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
|