diff options
author | Gerd Knorr <devnull@localhost> | 2004-03-25 13:00:12 +0000 |
---|---|---|
committer | Gerd Knorr <devnull@localhost> | 2004-03-25 13:00:12 +0000 |
commit | 8e0a7f2f9d3ab36712439a68d4c41795925a9c1a (patch) | |
tree | db14ef51c8cfa99654bbf717da731bb66c6a277f /linux/drivers/media/video | |
parent | a86e858dc8f1ce0188c0f87671c49e2a808962fc (diff) | |
download | mediapointer-dvb-s2-8e0a7f2f9d3ab36712439a68d4c41795925a9c1a.tar.gz mediapointer-dvb-s2-8e0a7f2f9d3ab36712439a68d4c41795925a9c1a.tar.bz2 |
- cx88 vbi fixes by Tom Zoerner
Diffstat (limited to 'linux/drivers/media/video')
-rw-r--r-- | linux/drivers/media/video/bttv-driver.c | 4 | ||||
-rw-r--r-- | linux/drivers/media/video/cx88/cx88-vbi.c | 8 | ||||
-rw-r--r-- | linux/drivers/media/video/cx88/cx88-video.c | 12 | ||||
-rw-r--r-- | linux/drivers/media/video/cx88/cx88.h | 2 | ||||
-rw-r--r-- | linux/drivers/media/video/saa7134/saa7134-core.c | 2 |
5 files changed, 15 insertions, 13 deletions
diff --git a/linux/drivers/media/video/bttv-driver.c b/linux/drivers/media/video/bttv-driver.c index ffedaf051..39b1c3672 100644 --- a/linux/drivers/media/video/bttv-driver.c +++ b/linux/drivers/media/video/bttv-driver.c @@ -3401,7 +3401,8 @@ bttv_irq_switch_fields(struct bttv *btv) rc = btread(BT848_RISC_COUNT); if (rc < btv->main.dma || rc > btv->main.dma + 0x100) { btv->framedrop++; - if (irq_debug) + if (irq_debug) { + // TODO: dump_stack(); experiments printk("bttv%d: skipped frame. no signal? high irq latency? " "[main=%lx,o_vbi=%lx,o_field=%lx,rc=%lx]\n", btv->c.nr, @@ -3409,6 +3410,7 @@ bttv_irq_switch_fields(struct bttv *btv) (unsigned long)btv->main.cpu[RISC_SLOT_O_VBI+1], (unsigned long)btv->main.cpu[RISC_SLOT_O_FIELD+1], (unsigned long)rc); + } spin_unlock(&btv->s_lock); return; } diff --git a/linux/drivers/media/video/cx88/cx88-vbi.c b/linux/drivers/media/video/cx88/cx88-vbi.c index b1221fa7f..3b066a1fd 100644 --- a/linux/drivers/media/video/cx88/cx88-vbi.c +++ b/linux/drivers/media/video/cx88/cx88-vbi.c @@ -32,16 +32,16 @@ void cx8800_vbi_fmt(struct cx8800_dev *dev, struct v4l2_format *f) case V4L2_STD_NTSC_M: case V4L2_STD_NTSC_M_JP: f->fmt.vbi.sampling_rate = 28636363; - f->fmt.vbi.start[0] = 10; - f->fmt.vbi.start[1] = 273; + f->fmt.vbi.start[0] = 10 -1; + f->fmt.vbi.start[1] = 273 -1; break; case V4L2_STD_PAL_BG: case V4L2_STD_PAL_DK: case V4L2_STD_PAL_I: case V4L2_STD_SECAM: f->fmt.vbi.sampling_rate = 35468950; - f->fmt.vbi.start[0] = 7; - f->fmt.vbi.start[1] = 319; + f->fmt.vbi.start[0] = 7 -1; + f->fmt.vbi.start[1] = 319 -1; } } diff --git a/linux/drivers/media/video/cx88/cx88-video.c b/linux/drivers/media/video/cx88/cx88-video.c index a56c7e90d..f35b43894 100644 --- a/linux/drivers/media/video/cx88/cx88-video.c +++ b/linux/drivers/media/video/cx88/cx88-video.c @@ -137,7 +137,7 @@ static unsigned int inline norm_htotal(struct cx8800_tvnorm *norm) static unsigned int inline norm_vbipack(struct cx8800_tvnorm *norm) { - return (norm->id & V4L2_STD_625_50) ? 255 : 144; + return (norm->id & V4L2_STD_625_50) ? 511 : 288; } static struct cx8800_tvnorm tvnorms[] = { @@ -585,8 +585,8 @@ static int set_tvnorm(struct cx8800_dev *dev, struct cx8800_tvnorm *norm) cx_write(MO_HTOTAL, htotal); // vbi stuff - cx_write(MO_VBI_PACKET, ( (1 << 11) | /* (norm_vdelay(norm) << 11) | */ - (norm_vbipack(norm) << 0) )); + cx_write(MO_VBI_PACKET, ((1 << 11) | /* (norm_vdelay(norm) << 11) | */ + norm_vbipack(norm))); // audio set_tvaudio(dev); @@ -1559,9 +1559,9 @@ static int video_do_ioctl(struct inode *inode, struct file *file, V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE | V4L2_CAP_STREAMING | + V4L2_CAP_VBI_CAPTURE | #if 0 V4L2_CAP_VIDEO_OVERLAY | - V4L2_CAP_VBI_CAPTURE | #endif 0; if (UNSET != dev->tuner_type) @@ -2058,7 +2058,7 @@ static void cx8800_vid_irq(struct cx8800_dev *dev) } /* risc1 vbi */ - if (status & 0x04) { + if (status & 0x08) { spin_lock(&dev->slock); count = cx_read(MO_VBI_GPCNT); cx8800_wakeup(dev, &dev->vbiq, count); @@ -2074,7 +2074,7 @@ static void cx8800_vid_irq(struct cx8800_dev *dev) } /* risc2 vbi */ - if (status & 0x40) { + if (status & 0x80) { dprintk(2,"stopper vbi\n"); spin_lock(&dev->slock); cx8800_restart_vbi_queue(dev,&dev->vbiq); diff --git a/linux/drivers/media/video/cx88/cx88.h b/linux/drivers/media/video/cx88/cx88.h index 766c8eb04..f06178e5a 100644 --- a/linux/drivers/media/video/cx88/cx88.h +++ b/linux/drivers/media/video/cx88/cx88.h @@ -67,7 +67,7 @@ #define FORMAT_FLAGS_PACKED 0x01 #define FORMAT_FLAGS_PLANAR 0x02 -#define VBI_LINE_COUNT 16 +#define VBI_LINE_COUNT 17 #define VBI_LINE_LENGTH 2048 /* need "shadow" registers for some write-only ones ... */ diff --git a/linux/drivers/media/video/saa7134/saa7134-core.c b/linux/drivers/media/video/saa7134/saa7134-core.c index d1ee34e29..46ddadbc6 100644 --- a/linux/drivers/media/video/saa7134/saa7134-core.c +++ b/linux/drivers/media/video/saa7134/saa7134-core.c @@ -101,7 +101,7 @@ unsigned int saa7134_devcount; /* debug help functions */ static const char *v4l1_ioctls[] = { - "0", "CGAP", "GCHAN", "SCHAN", "GTUNER", "STUNER", "GPICT", "SPICT", + "0", "GCAP", "GCHAN", "SCHAN", "GTUNER", "STUNER", "GPICT", "SPICT", "CCAPTURE", "GWIN", "SWIN", "GFBUF", "SFBUF", "KEY", "GFREQ", "SFREQ", "GAUDIO", "SAUDIO", "SYNC", "MCAPTURE", "GMBUF", "GUNIT", "GCAPTURE", "SCAPTURE", "SPLAYMODE", "SWRITEMODE", "GPLAYINFO", |