diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-06-30 16:36:08 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-06-30 16:36:08 -0300 |
commit | 2fbea57afdd3fb8da843ee44c1859b54d08433ad (patch) | |
tree | 4140c56526d11596b0c2d5c8176c7ff31eedec50 /linux/include/media | |
parent | 2e3dbe38af11659dad7ec398a503f64125c2617e (diff) | |
parent | b0b50913254709734afb1bcc907788c1beb15e62 (diff) | |
download | mediapointer-dvb-s2-2fbea57afdd3fb8da843ee44c1859b54d08433ad.tar.gz mediapointer-dvb-s2-2fbea57afdd3fb8da843ee44c1859b54d08433ad.tar.bz2 |
merge: http://www.kernellabs.com/hg/~dheitmueller/em28xx-terratec-zl10353/
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux/include/media')
-rw-r--r-- | linux/include/media/v4l2-chip-ident.h | 3 | ||||
-rw-r--r-- | linux/include/media/v4l2-common.h | 18 | ||||
-rw-r--r-- | linux/include/media/v4l2-subdev.h | 7 |
3 files changed, 27 insertions, 1 deletions
diff --git a/linux/include/media/v4l2-chip-ident.h b/linux/include/media/v4l2-chip-ident.h index 4d7e2272c..11a4a2d3e 100644 --- a/linux/include/media/v4l2-chip-ident.h +++ b/linux/include/media/v4l2-chip-ident.h @@ -155,6 +155,9 @@ enum { /* module cafe_ccic, just ident 8801 */ V4L2_IDENT_CAFE = 8801, + /* module mt9v011, just ident 8243 */ + V4L2_IDENT_MT9V011 = 8243, + /* module tw9910: just ident 9910 */ V4L2_IDENT_TW9910 = 9910, diff --git a/linux/include/media/v4l2-common.h b/linux/include/media/v4l2-common.h index 54728d4c0..831c4c038 100644 --- a/linux/include/media/v4l2-common.h +++ b/linux/include/media/v4l2-common.h @@ -158,6 +158,24 @@ struct v4l2_subdev *v4l2_i2c_new_probed_subdev(struct v4l2_device *v4l2_dev, struct v4l2_subdev *v4l2_i2c_new_probed_subdev_addr(struct v4l2_device *v4l2_dev, struct i2c_adapter *adapter, const char *module_name, const char *client_type, u8 addr); + +/* Load an i2c module and return an initialized v4l2_subdev struct. + Only call request_module if module_name != NULL. + The client_type argument is the name of the chip that's on the adapter. */ +struct v4l2_subdev *v4l2_i2c_new_subdev_cfg(struct v4l2_device *v4l2_dev, + struct i2c_adapter *adapter, + const char *module_name, const char *client_type, + int irq, void *platform_data, + u8 addr, const unsigned short *probe_addrs); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26) +struct i2c_board_info; + +struct v4l2_subdev *v4l2_i2c_new_subdev_board(struct v4l2_device *v4l2_dev, + struct i2c_adapter *adapter, const char *module_name, + struct i2c_board_info *info, const unsigned short *probe_addrs); +#endif + /* Initialize an v4l2_subdev with data from an i2c_client struct */ void v4l2_i2c_subdev_init(struct v4l2_subdev *sd, struct i2c_client *client, const struct v4l2_subdev_ops *ops); diff --git a/linux/include/media/v4l2-subdev.h b/linux/include/media/v4l2-subdev.h index a503e1cee..5dcb36785 100644 --- a/linux/include/media/v4l2-subdev.h +++ b/linux/include/media/v4l2-subdev.h @@ -79,7 +79,11 @@ struct v4l2_decode_vbi_line { not yet implemented) since ops provide proper type-checking. */ -/* init: initialize the sensor registors to some sort of reasonable default +/* s_config: if set, then it is always called by the v4l2_i2c_new_subdev* + functions after the v4l2_subdev was registered. It is used to pass + platform data to the subdev which can be used during initialization. + + init: initialize the sensor registors to some sort of reasonable default values. Do not use for new drivers and should be removed in existing drivers. @@ -96,6 +100,7 @@ struct v4l2_decode_vbi_line { struct v4l2_subdev_core_ops { int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip); int (*log_status)(struct v4l2_subdev *sd); + int (*s_config)(struct v4l2_subdev *sd, int irq, void *platform_data); int (*init)(struct v4l2_subdev *sd, u32 val); int (*load_fw)(struct v4l2_subdev *sd); int (*reset)(struct v4l2_subdev *sd, u32 val); |