summaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/stv06xx
diff options
context:
space:
mode:
authorErik Andrén <erik.andren@gmail.com>2011-07-27 17:19:58 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-07-31 00:50:20 -0300
commit46fecfaf786a35ce6dc024a70ae1e768ee44e803 (patch)
treec1734fc16048e4b7869b4787a0b70e376c4816c3 /drivers/media/video/gspca/stv06xx
parentf9ada374f07fa8c09c15262ffd26371beacb1e98 (diff)
[media] gspca-stv06xx: Simplify stv_init struct and vv6410 bridge init
Signed-off-by: Erik Andrén <erik.andren@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca/stv06xx')
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx_vv6410.c13
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h35
2 files changed, 18 insertions, 30 deletions
diff --git a/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.c b/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.c
index f8398434c32..51b66590c7f 100644
--- a/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.c
+++ b/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.c
@@ -138,18 +138,7 @@ static int vv6410_init(struct sd *sd)
s32 *sensor_settings = sd->sensor_priv;
for (i = 0; i < ARRAY_SIZE(stv_bridge_init); i++) {
- /* if NULL then len contains single value */
- if (stv_bridge_init[i].data == NULL) {
- err = stv06xx_write_bridge(sd,
- stv_bridge_init[i].start,
- stv_bridge_init[i].len);
- } else {
- int j;
- for (j = 0; j < stv_bridge_init[i].len; j++)
- err = stv06xx_write_bridge(sd,
- stv_bridge_init[i].start + j,
- stv_bridge_init[i].data[j]);
- }
+ stv06xx_write_bridge(sd, stv_bridge_init[i].addr, stv_bridge_init[i].data);
}
if (err < 0)
diff --git a/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h b/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h
index c7615c218c3..f75c3364a37 100644
--- a/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h
+++ b/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h
@@ -211,28 +211,27 @@ const struct stv06xx_sensor stv06xx_sensor_vv6410 = {
/* If NULL, only single value to write, stored in len */
struct stv_init {
- const u8 *data;
- u16 start;
- u8 len;
+ u16 addr;
+ u8 data;
};
static const struct stv_init stv_bridge_init[] = {
/* This reg is written twice. Some kind of reset? */
- {NULL, STV_RESET, 0x80},
- {NULL, STV_RESET, 0x00},
- {NULL, STV_SCAN_RATE, 0x00},
- {NULL, STV_I2C_FLUSH, 0x04},
- {NULL, STV_REG00, 0x0b},
- {NULL, STV_REG01, 0xa7},
- {NULL, STV_REG02, 0xb7},
- {NULL, STV_REG03, 0x00},
- {NULL, STV_REG04, 0x00},
- {NULL, 0x1536, 0x02},
- {NULL, 0x1537, 0x00},
- {NULL, 0x1538, 0x60},
- {NULL, 0x1539, 0x01},
- {NULL, 0x153a, 0x20},
- {NULL, 0x153b, 0x01},
+ {STV_RESET, 0x80},
+ {STV_RESET, 0x00},
+ {STV_SCAN_RATE, 0x00},
+ {STV_I2C_FLUSH, 0x04},
+ {STV_REG00, 0x0b},
+ {STV_REG01, 0xa7},
+ {STV_REG02, 0xb7},
+ {STV_REG03, 0x00},
+ {STV_REG04, 0x00},
+ {0x1536, 0x02},
+ {0x1537, 0x00},
+ {0x1538, 0x60},
+ {0x1539, 0x01},
+ {0x153a, 0x20},
+ {0x153b, 0x01},
};
static const u8 vv6410_sensor_init[][2] = {