V4L/DVB (4002): Adjust VBI offset to match value reported in VBI format
authorTrent Piepho <xyzzy@speakeasy.org>
Wed, 24 May 2006 02:54:44 +0000 (23:54 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 25 Jun 2006 05:00:15 +0000 (02:00 -0300)
The actual offset of the start of VBI data is incorrectly documented for both
the cx2388x and bt8x8.  For the cx2388x, it appears to be about 220 to 224 +
VBI_V_DEL*2.  The driver has been incorrectly reporting an offset of 244.
This patch adjusts VBI_V_DEL to 10, so that the offset of 244 is correct.
This is the same offset as the bttv driver, and expected by some software.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/cx88/cx88-core.c

index 2214235..c56292d 100644 (file)
@@ -932,9 +932,9 @@ int cx88_set_tvnorm(struct cx88_core *core, struct cx88_tvnorm *norm)
                htotal, cx_read(MO_HTOTAL), (u32)tmp64);
        cx_write(MO_HTOTAL, htotal);
 
-       // vbi stuff
-       cx_write(MO_VBI_PACKET, ((1 << 11) | /* (norm_vdelay(norm)   << 11) | */
-                                norm_vbipack(norm)));
+       // vbi stuff, set vbi offset to 10 (for 20 Clk*2 pixels), this makes
+       // the effective vbi offset ~244 samples, the same as the Bt8x8
+       cx_write(MO_VBI_PACKET, (10<<11) | norm_vbipack(norm));
 
        // this is needed as well to set all tvnorm parameter
        cx88_set_scale(core, 320, 240, V4L2_FIELD_INTERLACED);