diff options
author | fsmp <fsmp@FreeBSD.org> | 1997-04-17 22:33:16 +0000 |
---|---|---|
committer | fsmp <fsmp@FreeBSD.org> | 1997-04-17 22:33:16 +0000 |
commit | de87c9b49ee2e6432f6c3abdcf680a9c9b32c36f (patch) | |
tree | dee3e81031cb5f09aae99e6b0c8d0d813d00bf09 /sys | |
parent | f0cead7718cab3c89a5cfba6860575fc67ba0a07 (diff) | |
download | FreeBSD-src-de87c9b49ee2e6432f6c3abdcf680a9c9b32c36f.zip FreeBSD-src-de87c9b49ee2e6432f6c3abdcf680a9c9b32c36f.tar.gz |
Amancio:
This patch fixes the problem of vic only capturing an even or odd frame plus
the my early patch for missing frames with resolutions higher than 320x240
in rgb mode.
The yuv422 patch introduces a minor bug in that a green line appears at the
bottom of the captured window . There is no easy work around for this right
now.
Reviewed by: various bt848 hackers
Submitted by: Amancio Hasty <hasty@rah.star-gate.com>
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/bktr/bktr_core.c | 26 | ||||
-rw-r--r-- | sys/pci/brooktree848.c | 26 |
2 files changed, 26 insertions, 26 deletions
diff --git a/sys/dev/bktr/bktr_core.c b/sys/dev/bktr/bktr_core.c index 8893c32..5f780a6 100644 --- a/sys/dev/bktr/bktr_core.c +++ b/sys/dev/bktr/bktr_core.c @@ -2039,7 +2039,7 @@ rgb_prog( bktr_ptr_t bktr, char i_flag, int cols, buffer = target_buffer; /* contruct sync : for video packet format */ - *dma_prog++ = OP_SYNC | 0xC << 24 | 1 << 15 | BKTR_FM1; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM1; /* sync, mode indicator packed data */ *dma_prog++ = 0; /* NULL WORD */ @@ -2073,7 +2073,7 @@ rgb_prog( bktr_ptr_t bktr, char i_flag, int cols, case 3: /* sync vre */ - *dma_prog++ = OP_SYNC | 0xC << 24 | 1 << 24 | 1 << 15 | BKTR_VRO; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_VRO; *dma_prog++ = 0; /* NULL WORD */ *dma_prog++ = OP_JUMP | 0xc << 24 ; *dma_prog = (u_long ) vtophys(bktr->odd_dma_prog); @@ -2087,7 +2087,7 @@ rgb_prog( bktr_ptr_t bktr, char i_flag, int cols, dma_prog = (u_long *) bktr->odd_dma_prog; /* sync vre IRQ bit */ - *dma_prog++ = OP_SYNC | 0xc << 24 | 1 << 15 | BKTR_FM1; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM1; *dma_prog++ = 0; /* NULL WORD */ for (i = 0; i < (rows/interlace); i++) { @@ -2100,9 +2100,9 @@ rgb_prog( bktr_ptr_t bktr, char i_flag, int cols, } /* sync vre IRQ bit */ - *dma_prog++ = OP_SYNC | 0xc << 24 | 1 << 24 | 1 << 15 | BKTR_VRE; + *dma_prog++ = OP_SYNC | 1 << 24 | 1 << 15 | BKTR_VRE; *dma_prog++ = 0; /* NULL WORD */ - *dma_prog++ = OP_JUMP | 0xc << 24; + *dma_prog++ = OP_JUMP ; *dma_prog++ = (u_long ) vtophys(bktr->dma_prog) ; *dma_prog++ = 0; /* NULL WORD */ } @@ -2288,10 +2288,10 @@ yuv422_prog( bktr_ptr_t bktr, char i_flag, t1 = target_buffer; /* contruct sync : for video packet format */ - *dma_prog++ = OP_SYNC | 0xC << 24 | 1 << 15 | BKTR_FM3; /*sync, mode indicator packed data*/ + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM3; /*sync, mode indicator packed data*/ *dma_prog++ = 0; /* NULL WORD */ - for (i = 0; i < (rows/interlace ); i++) { + for (i = 0; i < (rows/interlace ) - 1; i++) { *dma_prog++ = inst; *dma_prog++ = cols/2 | cols/2 << 16; *dma_prog++ = target_buffer; @@ -2318,10 +2318,10 @@ yuv422_prog( bktr_ptr_t bktr, char i_flag, return; case 3: - *dma_prog++ = OP_SYNC | 0xc << 24 | 1 << 15 | BKTR_VRO; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_VRO; *dma_prog++ = 0; /* NULL WORD */ - *dma_prog++ = OP_JUMP | 0xc << 24 ; + *dma_prog++ = OP_JUMP ; *dma_prog = (u_long ) vtophys(bktr->odd_dma_prog); break; } @@ -2332,10 +2332,10 @@ yuv422_prog( bktr_ptr_t bktr, char i_flag, target_buffer = (u_long) buffer + cols; t1 = target_buffer + cols/2; - *dma_prog++ = OP_SYNC | 0xc << 24 | 1 << 24 | 1 << 15 | BKTR_FM3; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM3; *dma_prog++ = 0; /* NULL WORD */ - for (i = 0; i < (rows/interlace ) ; i++) { + for (i = 0; i < (rows/interlace ) - 1; i++) { *dma_prog++ = inst; *dma_prog++ = cols/2 | cols/2 << 16; *dma_prog++ = target_buffer; @@ -2345,9 +2345,9 @@ yuv422_prog( bktr_ptr_t bktr, char i_flag, } } - *dma_prog++ = OP_SYNC | 0xC << 24 | 1 << 24 | BKTR_VRE; + *dma_prog++ = OP_SYNC | 1 << 24 | BKTR_VRE; *dma_prog++ = 0; /* NULL WORD */ - *dma_prog++ = OP_JUMP | 0xC << 24;; + *dma_prog++ = OP_JUMP ; *dma_prog++ = (u_long ) vtophys(bktr->dma_prog) ; *dma_prog++ = 0; /* NULL WORD */ } diff --git a/sys/pci/brooktree848.c b/sys/pci/brooktree848.c index 8893c32..5f780a6 100644 --- a/sys/pci/brooktree848.c +++ b/sys/pci/brooktree848.c @@ -2039,7 +2039,7 @@ rgb_prog( bktr_ptr_t bktr, char i_flag, int cols, buffer = target_buffer; /* contruct sync : for video packet format */ - *dma_prog++ = OP_SYNC | 0xC << 24 | 1 << 15 | BKTR_FM1; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM1; /* sync, mode indicator packed data */ *dma_prog++ = 0; /* NULL WORD */ @@ -2073,7 +2073,7 @@ rgb_prog( bktr_ptr_t bktr, char i_flag, int cols, case 3: /* sync vre */ - *dma_prog++ = OP_SYNC | 0xC << 24 | 1 << 24 | 1 << 15 | BKTR_VRO; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_VRO; *dma_prog++ = 0; /* NULL WORD */ *dma_prog++ = OP_JUMP | 0xc << 24 ; *dma_prog = (u_long ) vtophys(bktr->odd_dma_prog); @@ -2087,7 +2087,7 @@ rgb_prog( bktr_ptr_t bktr, char i_flag, int cols, dma_prog = (u_long *) bktr->odd_dma_prog; /* sync vre IRQ bit */ - *dma_prog++ = OP_SYNC | 0xc << 24 | 1 << 15 | BKTR_FM1; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM1; *dma_prog++ = 0; /* NULL WORD */ for (i = 0; i < (rows/interlace); i++) { @@ -2100,9 +2100,9 @@ rgb_prog( bktr_ptr_t bktr, char i_flag, int cols, } /* sync vre IRQ bit */ - *dma_prog++ = OP_SYNC | 0xc << 24 | 1 << 24 | 1 << 15 | BKTR_VRE; + *dma_prog++ = OP_SYNC | 1 << 24 | 1 << 15 | BKTR_VRE; *dma_prog++ = 0; /* NULL WORD */ - *dma_prog++ = OP_JUMP | 0xc << 24; + *dma_prog++ = OP_JUMP ; *dma_prog++ = (u_long ) vtophys(bktr->dma_prog) ; *dma_prog++ = 0; /* NULL WORD */ } @@ -2288,10 +2288,10 @@ yuv422_prog( bktr_ptr_t bktr, char i_flag, t1 = target_buffer; /* contruct sync : for video packet format */ - *dma_prog++ = OP_SYNC | 0xC << 24 | 1 << 15 | BKTR_FM3; /*sync, mode indicator packed data*/ + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM3; /*sync, mode indicator packed data*/ *dma_prog++ = 0; /* NULL WORD */ - for (i = 0; i < (rows/interlace ); i++) { + for (i = 0; i < (rows/interlace ) - 1; i++) { *dma_prog++ = inst; *dma_prog++ = cols/2 | cols/2 << 16; *dma_prog++ = target_buffer; @@ -2318,10 +2318,10 @@ yuv422_prog( bktr_ptr_t bktr, char i_flag, return; case 3: - *dma_prog++ = OP_SYNC | 0xc << 24 | 1 << 15 | BKTR_VRO; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_VRO; *dma_prog++ = 0; /* NULL WORD */ - *dma_prog++ = OP_JUMP | 0xc << 24 ; + *dma_prog++ = OP_JUMP ; *dma_prog = (u_long ) vtophys(bktr->odd_dma_prog); break; } @@ -2332,10 +2332,10 @@ yuv422_prog( bktr_ptr_t bktr, char i_flag, target_buffer = (u_long) buffer + cols; t1 = target_buffer + cols/2; - *dma_prog++ = OP_SYNC | 0xc << 24 | 1 << 24 | 1 << 15 | BKTR_FM3; + *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM3; *dma_prog++ = 0; /* NULL WORD */ - for (i = 0; i < (rows/interlace ) ; i++) { + for (i = 0; i < (rows/interlace ) - 1; i++) { *dma_prog++ = inst; *dma_prog++ = cols/2 | cols/2 << 16; *dma_prog++ = target_buffer; @@ -2345,9 +2345,9 @@ yuv422_prog( bktr_ptr_t bktr, char i_flag, } } - *dma_prog++ = OP_SYNC | 0xC << 24 | 1 << 24 | BKTR_VRE; + *dma_prog++ = OP_SYNC | 1 << 24 | BKTR_VRE; *dma_prog++ = 0; /* NULL WORD */ - *dma_prog++ = OP_JUMP | 0xC << 24;; + *dma_prog++ = OP_JUMP ; *dma_prog++ = (u_long ) vtophys(bktr->dma_prog) ; *dma_prog++ = 0; /* NULL WORD */ } |