diff options
Diffstat (limited to 'drivers/media/video/cafe_ccic.c')
-rw-r--r-- | drivers/media/video/cafe_ccic.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c index 710c11a68296..4d4db7b2b611 100644 --- a/drivers/media/video/cafe_ccic.c +++ b/drivers/media/video/cafe_ccic.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/spinlock.h> | 22 | #include <linux/spinlock.h> |
23 | #include <linux/videodev2.h> | 23 | #include <linux/videodev2.h> |
24 | #include <media/v4l2-common.h> | 24 | #include <media/v4l2-common.h> |
25 | #include <media/v4l2-chip-ident.h> | ||
25 | #include <linux/device.h> | 26 | #include <linux/device.h> |
26 | #include <linux/wait.h> | 27 | #include <linux/wait.h> |
27 | #include <linux/list.h> | 28 | #include <linux/list.h> |
@@ -164,7 +165,7 @@ struct cafe_camera | |||
164 | struct tasklet_struct s_tasklet; | 165 | struct tasklet_struct s_tasklet; |
165 | 166 | ||
166 | /* Current operating parameters */ | 167 | /* Current operating parameters */ |
167 | enum v4l2_chip_ident sensor_type; /* Currently ov7670 only */ | 168 | u32 sensor_type; /* Currently ov7670 only */ |
168 | struct v4l2_pix_format pix_format; | 169 | struct v4l2_pix_format pix_format; |
169 | 170 | ||
170 | /* Locks */ | 171 | /* Locks */ |
@@ -818,6 +819,7 @@ static int __cafe_cam_reset(struct cafe_camera *cam) | |||
818 | */ | 819 | */ |
819 | static int cafe_cam_init(struct cafe_camera *cam) | 820 | static int cafe_cam_init(struct cafe_camera *cam) |
820 | { | 821 | { |
822 | struct v4l2_chip_ident chip = { V4L2_CHIP_MATCH_I2C_ADDR, 0, 0, 0 }; | ||
821 | int ret; | 823 | int ret; |
822 | 824 | ||
823 | mutex_lock(&cam->s_mutex); | 825 | mutex_lock(&cam->s_mutex); |
@@ -827,9 +829,11 @@ static int cafe_cam_init(struct cafe_camera *cam) | |||
827 | ret = __cafe_cam_reset(cam); | 829 | ret = __cafe_cam_reset(cam); |
828 | if (ret) | 830 | if (ret) |
829 | goto out; | 831 | goto out; |
830 | ret = __cafe_cam_cmd(cam, VIDIOC_INT_G_CHIP_IDENT, &cam->sensor_type); | 832 | chip.match_chip = cam->sensor->addr; |
833 | ret = __cafe_cam_cmd(cam, VIDIOC_G_CHIP_IDENT, &chip); | ||
831 | if (ret) | 834 | if (ret) |
832 | goto out; | 835 | goto out; |
836 | cam->sensor_type = chip.ident; | ||
833 | // if (cam->sensor->addr != OV7xx0_SID) { | 837 | // if (cam->sensor->addr != OV7xx0_SID) { |
834 | if (cam->sensor_type != V4L2_IDENT_OV7670) { | 838 | if (cam->sensor_type != V4L2_IDENT_OV7670) { |
835 | cam_err(cam, "Unsupported sensor type %d", cam->sensor->addr); | 839 | cam_err(cam, "Unsupported sensor type %d", cam->sensor->addr); |