Fix a bug which caused signals on YUV images to fail.

PR: i386/45678  (this also allowed kern/21305 and kern/33715 to be closed)
Submitted by: Tommy Johnson <tjohnson@bobdbob.com>
This commit is contained in:
Roger Hardiman 2002-12-07 09:00:19 +00:00
parent cf37bfb0ec
commit 1f3e23743d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=107668

View File

@ -810,7 +810,6 @@ common_bktr_intr( void *arg )
} }
/* /*
* Register the completed field * Register the completed field
* (For dual-field mode, require fields from the same frame) * (For dual-field mode, require fields from the same frame)
@ -3087,7 +3086,7 @@ yuvpack_prog( bktr_ptr_t bktr, char i_flag,
/* contruct sync : for video packet format */ /* contruct sync : for video packet format */
/* sync, mode indicator packed data */ /* sync, mode indicator packed data */
*dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM1; *dma_prog++ = OP_SYNC | BKTR_RESYNC | BKTR_FM1;
*dma_prog++ = 0; /* NULL WORD */ *dma_prog++ = 0; /* NULL WORD */
b = cols; b = cols;
@ -3103,7 +3102,7 @@ yuvpack_prog( bktr_ptr_t bktr, char i_flag,
switch (i_flag) { switch (i_flag) {
case 1: case 1:
/* sync vre */ /* sync vre */
*dma_prog++ = OP_SYNC | 1 << 24 | BKTR_VRE; *dma_prog++ = OP_SYNC | BKTR_GEN_IRQ | BKTR_VRE;
*dma_prog++ = 0; /* NULL WORD */ *dma_prog++ = 0; /* NULL WORD */
*dma_prog++ = OP_JUMP; *dma_prog++ = OP_JUMP;
@ -3112,7 +3111,7 @@ yuvpack_prog( bktr_ptr_t bktr, char i_flag,
case 2: case 2:
/* sync vro */ /* sync vro */
*dma_prog++ = OP_SYNC | 1 << 24 | BKTR_VRO; *dma_prog++ = OP_SYNC | BKTR_GEN_IRQ | BKTR_VRO;
*dma_prog++ = 0; /* NULL WORD */ *dma_prog++ = 0; /* NULL WORD */
*dma_prog++ = OP_JUMP; *dma_prog++ = OP_JUMP;
*dma_prog++ = (u_long ) vtophys(bktr->dma_prog); *dma_prog++ = (u_long ) vtophys(bktr->dma_prog);
@ -3120,7 +3119,7 @@ yuvpack_prog( bktr_ptr_t bktr, char i_flag,
case 3: case 3:
/* sync vro */ /* sync vro */
*dma_prog++ = OP_SYNC | 1 << 24 | 1 << 15 | BKTR_VRO; *dma_prog++ = OP_SYNC | BKTR_GEN_IRQ | BKTR_RESYNC | BKTR_VRO;
*dma_prog++ = 0; /* NULL WORD */ *dma_prog++ = 0; /* NULL WORD */
*dma_prog++ = OP_JUMP ; *dma_prog++ = OP_JUMP ;
*dma_prog = (u_long ) vtophys(bktr->odd_dma_prog); *dma_prog = (u_long ) vtophys(bktr->odd_dma_prog);
@ -3134,7 +3133,7 @@ yuvpack_prog( bktr_ptr_t bktr, char i_flag,
dma_prog = (u_long * ) bktr->odd_dma_prog; dma_prog = (u_long * ) bktr->odd_dma_prog;
/* sync vre */ /* sync vre */
*dma_prog++ = OP_SYNC | 1 << 24 | 1 << 15 | BKTR_FM1; *dma_prog++ = OP_SYNC | BKTR_RESYNC | BKTR_FM1;
*dma_prog++ = 0; /* NULL WORD */ *dma_prog++ = 0; /* NULL WORD */
for (i = 0; i < (rows/interlace) ; i++) { for (i = 0; i < (rows/interlace) ; i++) {
@ -3147,7 +3146,7 @@ yuvpack_prog( bktr_ptr_t bktr, char i_flag,
} }
/* sync vro IRQ bit */ /* sync vro IRQ bit */
*dma_prog++ = OP_SYNC | 1 << 24 | 1 << 15 | BKTR_VRE; *dma_prog++ = OP_SYNC | BKTR_GEN_IRQ | BKTR_RESYNC | BKTR_VRE;
*dma_prog++ = 0; /* NULL WORD */ *dma_prog++ = 0; /* NULL WORD */
*dma_prog++ = OP_JUMP ; *dma_prog++ = OP_JUMP ;
*dma_prog++ = (u_long ) vtophys(bktr->dma_prog); *dma_prog++ = (u_long ) vtophys(bktr->dma_prog);