diff options
author | Jean-François Moine <moinejf@free.fr> | 2010-11-12 13:32:29 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-12-29 05:16:43 -0500 |
commit | 5927abcb21d0dd10c960517453e37302acf2269e (patch) | |
tree | c70c7df9d596ed3a1f8dc92eb652f5453943c3eb /drivers | |
parent | a23acec4bca79f2168a5aeacc8d85386b70ae522 (diff) |
[media] gspca - ov519: Change the ov519 start and stop sequences
- 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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/gspca/ov519.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/video/gspca/ov519.c b/drivers/media/video/gspca/ov519.c index 2484e5222d4a..43b86b1b57fb 100644 --- a/drivers/media/video/gspca/ov519.c +++ b/drivers/media/video/gspca/ov519.c | |||
@@ -2325,6 +2325,8 @@ static inline void ov51x_stop(struct sd *sd) | |||
2325 | break; | 2325 | break; |
2326 | case BRIDGE_OV519: | 2326 | case BRIDGE_OV519: |
2327 | reg_w(sd, OV519_R51_RESET1, 0x0f); | 2327 | reg_w(sd, OV519_R51_RESET1, 0x0f); |
2328 | reg_w(sd, OV519_R51_RESET1, 0x00); | ||
2329 | reg_w(sd, 0x22, 0x00); /* FRAR */ | ||
2328 | break; | 2330 | break; |
2329 | case BRIDGE_OVFX2: | 2331 | case BRIDGE_OVFX2: |
2330 | reg_w_mask(sd, 0x0f, 0x00, 0x02); | 2332 | reg_w_mask(sd, 0x0f, 0x00, 0x02); |
@@ -2356,7 +2358,9 @@ static inline void ov51x_restart(struct sd *sd) | |||
2356 | reg_w(sd, R51x_SYS_RESET, 0x00); | 2358 | reg_w(sd, R51x_SYS_RESET, 0x00); |
2357 | break; | 2359 | break; |
2358 | case BRIDGE_OV519: | 2360 | case BRIDGE_OV519: |
2361 | reg_w(sd, OV519_R51_RESET1, 0x0f); | ||
2359 | reg_w(sd, OV519_R51_RESET1, 0x00); | 2362 | reg_w(sd, OV519_R51_RESET1, 0x00); |
2363 | reg_w(sd, 0x22, 0x1d); /* FRAR */ | ||
2360 | break; | 2364 | break; |
2361 | case BRIDGE_OVFX2: | 2365 | case BRIDGE_OVFX2: |
2362 | reg_w_mask(sd, 0x0f, 0x02, 0x02); | 2366 | reg_w_mask(sd, 0x0f, 0x02, 0x02); |
@@ -3668,13 +3672,13 @@ static void sethvflip(struct gspca_dev *gspca_dev) | |||
3668 | struct sd *sd = (struct sd *) gspca_dev; | 3672 | struct sd *sd = (struct sd *) gspca_dev; |
3669 | 3673 | ||
3670 | if (sd->gspca_dev.streaming) | 3674 | if (sd->gspca_dev.streaming) |
3671 | ov51x_stop(sd); | 3675 | reg_w(sd, OV519_R51_RESET1, 0x0f); /* block stream */ |
3672 | i2c_w_mask(sd, OV7670_R1E_MVFP, | 3676 | i2c_w_mask(sd, OV7670_R1E_MVFP, |
3673 | OV7670_MVFP_MIRROR * sd->ctrls[HFLIP].val | 3677 | OV7670_MVFP_MIRROR * sd->ctrls[HFLIP].val |
3674 | | OV7670_MVFP_VFLIP * sd->ctrls[VFLIP].val, | 3678 | | OV7670_MVFP_VFLIP * sd->ctrls[VFLIP].val, |
3675 | OV7670_MVFP_MIRROR | OV7670_MVFP_VFLIP); | 3679 | OV7670_MVFP_MIRROR | OV7670_MVFP_VFLIP); |
3676 | if (sd->gspca_dev.streaming) | 3680 | if (sd->gspca_dev.streaming) |
3677 | ov51x_restart(sd); | 3681 | reg_w(sd, OV519_R51_RESET1, 0x00); /* restart stream */ |
3678 | } | 3682 | } |
3679 | 3683 | ||
3680 | static void set_ov_sensor_window(struct sd *sd) | 3684 | static void set_ov_sensor_window(struct sd *sd) |