aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2007-02-23 18:55:14 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-03-01 10:09:44 -0500
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 65a165f918c9..e3ab047f90ef 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -1306,10 +1306,17 @@ struct v4l2_streamparm
1306 */ 1306 */
1307 1307
1308/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */ 1308/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */
1309
1310#define V4L2_CHIP_MATCH_ALWAYS 0 /* Match always (match_chip is not used) */
1311#define V4L2_CHIP_MATCH_HOST 1 /* Match against chip ID on host (0 for the host) */
1312#define V4L2_CHIP_MATCH_I2C_DRIVER 2 /* Match against I2C driver ID */
1313#define V4L2_CHIP_MATCH_I2C_ADDR 3 /* Match against I2C 7-bit address */
1314
1309struct v4l2_register { 1315struct v4l2_register {
1316 __u32 match_type; /* Match type */
1317 __u32 match_chip; /* Match this chip, meaning determined by match_type */
1310 __u64 reg; 1318 __u64 reg;
1311 __u32 i2c_id; /* I2C driver ID of the I2C chip, or 0 for the host */ 1319 __u64 val;
1312 __u32 val;
1313}; 1320};
1314 1321
1315/* 1322/*
diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
index 244e440edb53..6eaeec98ed89 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);
94 94
95/* ------------------------------------------------------------------------- */ 95/* ------------------------------------------------------------------------- */
96 96
97/* Register/chip ident helper function */
98
99struct i2c_client; /* forward reference */
100int v4l2_chip_match_i2c_client(struct i2c_client *c, u32 id_type, u32 chip_id);
101int v4l2_chip_match_host(u32 id_type, u32 chip_id);
102
103/* ------------------------------------------------------------------------- */
104
97/* Internal ioctls */ 105/* Internal ioctls */
98 106
99/* VIDIOC_INT_DECODE_VBI_LINE */ 107/* VIDIOC_INT_DECODE_VBI_LINE */