diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2007-02-23 23:55:14 (GMT) |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-03-01 15:09:44 (GMT) |
commit | f3d092b84a855c44914fea0648695bef7d751266 (patch) | |
tree | 3ae7a87e18e83be2a39e00a2ae29f26299d1c272 /include | |
parent | d55c7aec666658495e5b57a6b194c8c2a1ac255f (diff) | |
download | linux-fsl-qoriq-f3d092b84a855c44914fea0648695bef7d751266.tar.xz |
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.h | 11 | ||||
-rw-r--r-- | include/media/v4l2-common.h | 8 |
2 files changed, 17 insertions, 2 deletions
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 65a165f..e3ab047 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 244e440..6eaeec9 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 */ |