summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorfsmp <fsmp@FreeBSD.org>1997-04-17 22:33:16 +0000
committerfsmp <fsmp@FreeBSD.org>1997-04-17 22:33:16 +0000
commitde87c9b49ee2e6432f6c3abdcf680a9c9b32c36f (patch)
treedee3e81031cb5f09aae99e6b0c8d0d813d00bf09 /sys/dev
parentf0cead7718cab3c89a5cfba6860575fc67ba0a07 (diff)
downloadFreeBSD-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/dev')
-rw-r--r--sys/dev/bktr/bktr_core.c26
1 files changed, 13 insertions, 13 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 */
}
OpenPOWER on IntegriCloud