summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/ttpci/av7110_v4l.c
diff options
context:
space:
mode:
authorMichael Hunold <devnull@localhost>2004-03-12 12:48:57 +0000
committerMichael Hunold <devnull@localhost>2004-03-12 12:48:57 +0000
commit1a5602f193aed44f264347a6cbe5a7805d7f3aaf (patch)
tree798632f8c22c761eb361fc44d1f30221263d3943 /linux/drivers/media/dvb/ttpci/av7110_v4l.c
parente448bbd75236e707baaff23cc91b739271b98c02 (diff)
downloadmediapointer-dvb-s2-1a5602f193aed44f264347a6cbe5a7805d7f3aaf.tar.gz
mediapointer-dvb-s2-1a5602f193aed44f264347a6cbe5a7805d7f3aaf.tar.bz2
- follow latest changes in saa7146 core
Diffstat (limited to 'linux/drivers/media/dvb/ttpci/av7110_v4l.c')
-rw-r--r--linux/drivers/media/dvb/ttpci/av7110_v4l.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/linux/drivers/media/dvb/ttpci/av7110_v4l.c b/linux/drivers/media/dvb/ttpci/av7110_v4l.c
index 597c46ea9..c2cd7e3c4 100644
--- a/linux/drivers/media/dvb/ttpci/av7110_v4l.c
+++ b/linux/drivers/media/dvb/ttpci/av7110_v4l.c
@@ -177,18 +177,19 @@ int av7110_dvb_c_switch(struct saa7146_fh *fh)
struct av7110 *av7110 = (struct av7110*)dev->ext_priv;
u16 adswitch;
u8 band = 0;
- int source, sync;
- struct saa7146_fh *ov_fh = NULL;
- int restart_overlay = 0;
+ int source, sync, err;
DEB_EE(("av7110: %p\n", av7110));
- if (vv->ov_data != NULL) {
- ov_fh = vv->ov_data->fh;
- saa7146_stop_preview(ov_fh);
- restart_overlay = 1;
+ if ((vv->video_status & STATUS_OVERLAY) != 0) {
+ vv->ov_suspend = vv->video_fh;
+ err = saa7146_stop_preview(vv->video_fh); /* side effect: video_status is now 0, video_fh is NULL */
+ if (err != 0) {
+ DEB_D(("warning: suspending video failed\n"));
+ vv->ov_suspend = NULL;
+ }
}
-
+
if (0 != av7110->current_input) {
adswitch = 1;
band = 0x60; /* analog band */
@@ -225,8 +226,10 @@ int av7110_dvb_c_switch(struct saa7146_fh *fh)
printk("setting band in demodulator failed.\n");
saa7146_set_hps_source_and_sync(dev, source, sync);
- if (restart_overlay)
- saa7146_start_preview(ov_fh);
+ if (vv->ov_suspend != NULL) {
+ saa7146_start_preview(vv->ov_suspend);
+ vv->ov_suspend = NULL;
+ }
return 0;
}