]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/media/video/ov7670.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
[linux-2.6-omap-h63xx.git] / drivers / media / video / ov7670.c
index 2bc6bdc9c1f2c50eb966aa2fd127a13cc2d8090d..ea032f5f2f412ff2fae9eb6fa1535ad045e94ede 100644 (file)
@@ -406,8 +406,10 @@ static int ov7670_read(struct i2c_client *c, unsigned char reg,
        int ret;
 
        ret = i2c_smbus_read_byte_data(c, reg);
-       if (ret >= 0)
+       if (ret >= 0) {
                *value = (unsigned char) ret;
+               ret = 0;
+       }
        return ret;
 }
 
@@ -680,17 +682,17 @@ static int ov7670_try_fmt(struct i2c_client *c, struct v4l2_format *fmt,
        for (index = 0; index < N_OV7670_FMTS; index++)
                if (ov7670_formats[index].pixelformat == pix->pixelformat)
                        break;
-       if (index >= N_OV7670_FMTS)
-               return -EINVAL;
+       if (index >= N_OV7670_FMTS) {
+               /* default to first format */
+               index = 0;
+               pix->pixelformat = ov7670_formats[0].pixelformat;
+       }
        if (ret_fmt != NULL)
                *ret_fmt = ov7670_formats + index;
        /*
         * Fields: the OV devices claim to be progressive.
         */
-       if (pix->field == V4L2_FIELD_ANY)
-               pix->field = V4L2_FIELD_NONE;
-       else if (pix->field != V4L2_FIELD_NONE)
-               return -EINVAL;
+       pix->field = V4L2_FIELD_NONE;
        /*
         * Round requested image size down to the nearest
         * we support, but not below the smallest.
@@ -831,7 +833,7 @@ static int ov7670_store_cmatrix(struct i2c_client *client,
                int matrix[CMATRIX_LEN])
 {
        int i, ret;
-       unsigned char signbits;
+       unsigned char signbits = 0;
 
        /*
         * Weird crap seems to exist in the upper part of
@@ -1007,7 +1009,7 @@ static unsigned char ov7670_abs_to_sm(unsigned char v)
 
 static int ov7670_t_brightness(struct i2c_client *client, int value)
 {
-       unsigned char com8, v;
+       unsigned char com8 = 0, v;
        int ret;
 
        ov7670_read(client, REG_COM8, &com8);
@@ -1020,7 +1022,7 @@ static int ov7670_t_brightness(struct i2c_client *client, int value)
 
 static int ov7670_q_brightness(struct i2c_client *client, __s32 *value)
 {
-       unsigned char v;
+       unsigned char v = 0;
        int ret = ov7670_read(client, REG_BRIGHT, &v);
 
        *value = ov7670_sm_to_abs(v);
@@ -1034,7 +1036,7 @@ static int ov7670_t_contrast(struct i2c_client *client, int value)
 
 static int ov7670_q_contrast(struct i2c_client *client, __s32 *value)
 {
-       unsigned char v;
+       unsigned char v = 0;
        int ret = ov7670_read(client, REG_CONTRAS, &v);
 
        *value = v;
@@ -1044,7 +1046,7 @@ static int ov7670_q_contrast(struct i2c_client *client, __s32 *value)
 static int ov7670_q_hflip(struct i2c_client *client, __s32 *value)
 {
        int ret;
-       unsigned char v;
+       unsigned char v = 0;
 
        ret = ov7670_read(client, REG_MVFP, &v);
        *value = (v & MVFP_MIRROR) == MVFP_MIRROR;
@@ -1054,7 +1056,7 @@ static int ov7670_q_hflip(struct i2c_client *client, __s32 *value)
 
 static int ov7670_t_hflip(struct i2c_client *client, int value)
 {
-       unsigned char v;
+       unsigned char v = 0;
        int ret;
 
        ret = ov7670_read(client, REG_MVFP, &v);
@@ -1072,7 +1074,7 @@ static int ov7670_t_hflip(struct i2c_client *client, int value)
 static int ov7670_q_vflip(struct i2c_client *client, __s32 *value)
 {
        int ret;
-       unsigned char v;
+       unsigned char v = 0;
 
        ret = ov7670_read(client, REG_MVFP, &v);
        *value = (v & MVFP_FLIP) == MVFP_FLIP;
@@ -1082,7 +1084,7 @@ static int ov7670_q_vflip(struct i2c_client *client, __s32 *value)
 
 static int ov7670_t_vflip(struct i2c_client *client, int value)
 {
-       unsigned char v;
+       unsigned char v = 0;
        int ret;
 
        ret = ov7670_read(client, REG_MVFP, &v);