aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/gspca/ov534.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/media/video/gspca/ov534.c b/drivers/media/video/gspca/ov534.c
index edcd92557c8..ad97b0be5f3 100644
--- a/drivers/media/video/gspca/ov534.c
+++ b/drivers/media/video/gspca/ov534.c
@@ -149,6 +149,20 @@ static void sccb_reg_write(struct usb_device *udev, u16 reg, u8 val)
PDEBUG(D_ERR, "sccb_reg_write failed");
}
+static u8 sccb_reg_read(struct usb_device *udev, u16 reg)
+{
+ ov534_reg_write(udev, OV534_REG_SUBADDR, reg);
+ ov534_reg_write(udev, OV534_REG_OPERATION, OV534_OP_WRITE_2);
+ if (!sccb_check_status(udev))
+ PDEBUG(D_ERR, "sccb_reg_read failed 1");
+
+ ov534_reg_write(udev, OV534_REG_OPERATION, OV534_OP_READ_2);
+ if (!sccb_check_status(udev))
+ PDEBUG(D_ERR, "sccb_reg_read failed 2");
+
+ return ov534_reg_read(udev, OV534_REG_READ);
+}
+
static const __u8 ov534_reg_initdata[][2] = {
{ 0xe7, 0x3a },
@@ -339,6 +353,9 @@ static void ov534_setup(struct usb_device *udev)
ov534_reg_write(udev, ov534_reg_initdata[i][0],
ov534_reg_initdata[i][1]);
+ PDEBUG(D_PROBE, "sensor is ov%02x%02x",
+ sccb_reg_read(udev, 0x0a), sccb_reg_read(udev, 0x0b));
+
ov534_set_led(udev, 1);
/* Initialize sensor */