[media] gspca - ov519: Change the ov519 start and stop sequences
authorJean-François Moine <moinejf@free.fr>
Fri, 12 Nov 2010 18:32:29 +0000 (15:32 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 29 Dec 2010 10:16:43 +0000 (08:16 -0200)
- start and stop streaming are done via the FRAR
- streaming suspend (for control change) is done by video reset

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/ov519.c

index 2484e5222d4a5c5b73a27cf8bf2dfe21b6d5cce5..43b86b1b57fb4035f5f7f34f3705743587900c7b 100644 (file)
@@ -2325,6 +2325,8 @@ static inline void ov51x_stop(struct sd *sd)
                break;
        case BRIDGE_OV519:
                reg_w(sd, OV519_R51_RESET1, 0x0f);
+               reg_w(sd, OV519_R51_RESET1, 0x00);
+               reg_w(sd, 0x22, 0x00);          /* FRAR */
                break;
        case BRIDGE_OVFX2:
                reg_w_mask(sd, 0x0f, 0x00, 0x02);
@@ -2356,7 +2358,9 @@ static inline void ov51x_restart(struct sd *sd)
                reg_w(sd, R51x_SYS_RESET, 0x00);
                break;
        case BRIDGE_OV519:
+               reg_w(sd, OV519_R51_RESET1, 0x0f);
                reg_w(sd, OV519_R51_RESET1, 0x00);
+               reg_w(sd, 0x22, 0x1d);          /* FRAR */
                break;
        case BRIDGE_OVFX2:
                reg_w_mask(sd, 0x0f, 0x02, 0x02);
@@ -3668,13 +3672,13 @@ static void sethvflip(struct gspca_dev *gspca_dev)
        struct sd *sd = (struct sd *) gspca_dev;
 
        if (sd->gspca_dev.streaming)
-               ov51x_stop(sd);
+               reg_w(sd, OV519_R51_RESET1, 0x0f);      /* block stream */
        i2c_w_mask(sd, OV7670_R1E_MVFP,
                OV7670_MVFP_MIRROR * sd->ctrls[HFLIP].val
                        | OV7670_MVFP_VFLIP * sd->ctrls[VFLIP].val,
                OV7670_MVFP_MIRROR | OV7670_MVFP_VFLIP);
        if (sd->gspca_dev.streaming)
-               ov51x_restart(sd);
+               reg_w(sd, OV519_R51_RESET1, 0x00);      /* restart stream */
 }
 
 static void set_ov_sensor_window(struct sd *sd)