summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/video/cafe_ccic.c3
-rw-r--r--linux/drivers/media/video/v4l2-common.c4
-rw-r--r--linux/include/linux/videodev2.h7
3 files changed, 5 insertions, 9 deletions
diff --git a/linux/drivers/media/video/cafe_ccic.c b/linux/drivers/media/video/cafe_ccic.c
index 5f35836ad..b96d45654 100644
--- a/linux/drivers/media/video/cafe_ccic.c
+++ b/linux/drivers/media/video/cafe_ccic.c
@@ -826,7 +826,7 @@ static int __cafe_cam_reset(struct cafe_camera *cam)
*/
static int cafe_cam_init(struct cafe_camera *cam)
{
- struct v4l2_chip_ident chip = { V4L2_CHIP_MATCH_ALWAYS };
+ struct v4l2_chip_ident chip = { V4L2_CHIP_MATCH_I2C_ADDR, 0, 0, 0 };
int ret;
mutex_lock(&cam->s_mutex);
@@ -836,6 +836,7 @@ static int cafe_cam_init(struct cafe_camera *cam)
ret = __cafe_cam_reset(cam);
if (ret)
goto out;
+ chip.match_chip = cam->sensor->addr;
ret = __cafe_cam_cmd(cam, VIDIOC_G_CHIP_IDENT, &chip);
if (ret)
goto out;
diff --git a/linux/drivers/media/video/v4l2-common.c b/linux/drivers/media/video/v4l2-common.c
index b2d57d888..60c56a8b0 100644
--- a/linux/drivers/media/video/v4l2-common.c
+++ b/linux/drivers/media/video/v4l2-common.c
@@ -1596,8 +1596,6 @@ u32 v4l2_ctrl_next(const u32 * const * ctrl_classes, u32 id)
int v4l2_chip_match_i2c_client(struct i2c_client *c, u32 match_type, u32 match_chip)
{
switch (match_type) {
- case V4L2_CHIP_MATCH_ALWAYS:
- return 1;
case V4L2_CHIP_MATCH_I2C_DRIVER:
return (c != NULL && c->driver != NULL && c->driver->id == match_chip);
case V4L2_CHIP_MATCH_I2C_ADDR:
@@ -1610,8 +1608,6 @@ int v4l2_chip_match_i2c_client(struct i2c_client *c, u32 match_type, u32 match_c
int v4l2_chip_match_host(u32 match_type, u32 match_chip)
{
switch (match_type) {
- case V4L2_CHIP_MATCH_ALWAYS:
- return 1;
case V4L2_CHIP_MATCH_HOST:
return match_chip == 0;
default:
diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h
index 8a5aabb84..76af1e16a 100644
--- a/linux/include/linux/videodev2.h
+++ b/linux/include/linux/videodev2.h
@@ -1387,10 +1387,9 @@ 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 */
+#define V4L2_CHIP_MATCH_HOST 0 /* Match against chip ID on host (0 for the host) */
+#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver ID */
+#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */
struct v4l2_register {
__u32 match_type; /* Match type */