aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2007-02-23 20:55:14 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-03-01 13:09:44 -0200
commitf3d092b84a855c44914fea0648695bef7d751266 (patch)
tree3ae7a87e18e83be2a39e00a2ae29f26299d1c272 /include
parentd55c7aec666658495e5b57a6b194c8c2a1ac255f (diff)
V4L/DVB (5304): Improve chip matching in v4l2_register
The chip matching in struct v4l2_register for VIDIOC_DBG_G/S_REGISTER was rather primitive. It could not be extended to other busses besides i2c and it lacked a way to. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/videodev2.h11
-rw-r--r--include/media/v4l2-common.h8
2 files changed, 17 insertions, 2 deletions
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 65a165f918c..e3ab047f90e 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -1306,10 +1306,17 @@ struct v4l2_streamparm
*/
/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */
+
+#define V4L2_CHIP_MATCH_ALWAYS 0 /* Match always (match_chip is not used) */
+#define V4L2_CHIP_MATCH_HOST 1 /* Match against chip ID on host (0 for the host) */
+#define V4L2_CHIP_MATCH_I2C_DRIVER 2 /* Match against I2C driver ID */
+#define V4L2_CHIP_MATCH_I2C_ADDR 3 /* Match against I2C 7-bit address */
+
struct v4l2_register {
+ __u32 match_type; /* Match type */
+ __u32 match_chip; /* Match this chip, meaning determined by match_type */
__u64 reg;
- __u32 i2c_id; /* I2C driver ID of the I2C chip, or 0 for the host */
- __u32 val;
+ __u64 val;
};
/*
diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
index 244e440edb5..6eaeec98ed8 100644
--- a/include/media/v4l2-common.h
+++ b/include/media/v4l2-common.h
@@ -94,6 +94,14 @@ u32 v4l2_ctrl_next(const u32 * const *ctrl_classes, u32 id);
/* ------------------------------------------------------------------------- */
+/* Register/chip ident helper function */
+
+struct i2c_client; /* forward reference */
+int v4l2_chip_match_i2c_client(struct i2c_client *c, u32 id_type, u32 chip_id);
+int v4l2_chip_match_host(u32 id_type, u32 chip_id);
+
+/* ------------------------------------------------------------------------- */
+
/* Internal ioctls */
/* VIDIOC_INT_DECODE_VBI_LINE */