bktr_core.c (106519) | bktr_core.c (107668) |
---|---|
1/* $FreeBSD: head/sys/dev/bktr/bktr_core.c 106519 2002-11-06 20:16:39Z jhb $ */ | 1/* $FreeBSD: head/sys/dev/bktr/bktr_core.c 107668 2002-12-07 09:00:19Z roger $ */ |
2 3/* 4 * This is part of the Driver for Video Capture Cards (Frame grabbers) 5 * and TV Tuner cards using the Brooktree Bt848, Bt848A, Bt849A, Bt878, Bt879 6 * chipset. 7 * Copyright Roger Hardiman and Amancio Hasty. 8 * 9 * bktr_core : This deals with the Bt848/849/878/879 PCI Frame Grabber, --- 795 unchanged lines hidden (view full) --- 805 /* If someone has a select() on /dev/vbi, inform them */ 806 if (SEL_WAITING(&bktr->vbi_select)) { 807 selwakeup(&bktr->vbi_select); 808 } 809 810 811 } 812 | 2 3/* 4 * This is part of the Driver for Video Capture Cards (Frame grabbers) 5 * and TV Tuner cards using the Brooktree Bt848, Bt848A, Bt849A, Bt878, Bt879 6 * chipset. 7 * Copyright Roger Hardiman and Amancio Hasty. 8 * 9 * bktr_core : This deals with the Bt848/849/878/879 PCI Frame Grabber, --- 795 unchanged lines hidden (view full) --- 805 /* If someone has a select() on /dev/vbi, inform them */ 806 if (SEL_WAITING(&bktr->vbi_select)) { 807 selwakeup(&bktr->vbi_select); 808 } 809 810 811 } 812 |
813 | |
814 /* 815 * Register the completed field 816 * (For dual-field mode, require fields from the same frame) 817 */ 818 switch ( bktr->flags & METEOR_WANT_MASK ) { 819 case METEOR_WANT_ODD : w_field = ODD_F ; break; 820 case METEOR_WANT_EVEN : w_field = EVEN_F ; break; 821 default : w_field = (ODD_F|EVEN_F); break; --- 2260 unchanged lines hidden (view full) --- 3082 target_buffer = (u_long) bktr->video.addr; 3083 else 3084 target_buffer = (u_long) vtophys(bktr->bigbuf); 3085 3086 buffer = target_buffer; 3087 3088 /* contruct sync : for video packet format */ 3089 /* sync, mode indicator packed data */ | 813 /* 814 * Register the completed field 815 * (For dual-field mode, require fields from the same frame) 816 */ 817 switch ( bktr->flags & METEOR_WANT_MASK ) { 818 case METEOR_WANT_ODD : w_field = ODD_F ; break; 819 case METEOR_WANT_EVEN : w_field = EVEN_F ; break; 820 default : w_field = (ODD_F|EVEN_F); break; --- 2260 unchanged lines hidden (view full) --- 3081 target_buffer = (u_long) bktr->video.addr; 3082 else 3083 target_buffer = (u_long) vtophys(bktr->bigbuf); 3084 3085 buffer = target_buffer; 3086 3087 /* contruct sync : for video packet format */ 3088 /* sync, mode indicator packed data */ |
3090 *dma_prog++ = OP_SYNC | 1 << 15 | BKTR_FM1; | 3089 *dma_prog++ = OP_SYNC | BKTR_RESYNC | BKTR_FM1; |
3091 *dma_prog++ = 0; /* NULL WORD */ 3092 3093 b = cols; 3094 3095 for (i = 0; i < (rows/interlace); i++) { 3096 *dma_prog++ = inst; 3097 *dma_prog++ = target_buffer; 3098 *dma_prog++ = inst3; 3099 *dma_prog++ = target_buffer + b; 3100 target_buffer += interlace*(cols * 2); 3101 } 3102 3103 switch (i_flag) { 3104 case 1: 3105 /* sync vre */ | 3090 *dma_prog++ = 0; /* NULL WORD */ 3091 3092 b = cols; 3093 3094 for (i = 0; i < (rows/interlace); i++) { 3095 *dma_prog++ = inst; 3096 *dma_prog++ = target_buffer; 3097 *dma_prog++ = inst3; 3098 *dma_prog++ = target_buffer + b; 3099 target_buffer += interlace*(cols * 2); 3100 } 3101 3102 switch (i_flag) { 3103 case 1: 3104 /* sync vre */ |
3106 *dma_prog++ = OP_SYNC | 1 << 24 | BKTR_VRE; | 3105 *dma_prog++ = OP_SYNC | BKTR_GEN_IRQ | BKTR_VRE; |
3107 *dma_prog++ = 0; /* NULL WORD */ 3108 3109 *dma_prog++ = OP_JUMP; 3110 *dma_prog++ = (u_long ) vtophys(bktr->dma_prog); 3111 return; 3112 3113 case 2: 3114 /* sync vro */ | 3106 *dma_prog++ = 0; /* NULL WORD */ 3107 3108 *dma_prog++ = OP_JUMP; 3109 *dma_prog++ = (u_long ) vtophys(bktr->dma_prog); 3110 return; 3111 3112 case 2: 3113 /* sync vro */ |
3115 *dma_prog++ = OP_SYNC | 1 << 24 | BKTR_VRO; | 3114 *dma_prog++ = OP_SYNC | BKTR_GEN_IRQ | BKTR_VRO; |
3116 *dma_prog++ = 0; /* NULL WORD */ 3117 *dma_prog++ = OP_JUMP; 3118 *dma_prog++ = (u_long ) vtophys(bktr->dma_prog); 3119 return; 3120 3121 case 3: 3122 /* sync vro */ | 3115 *dma_prog++ = 0; /* NULL WORD */ 3116 *dma_prog++ = OP_JUMP; 3117 *dma_prog++ = (u_long ) vtophys(bktr->dma_prog); 3118 return; 3119 3120 case 3: 3121 /* sync vro */ |
3123 *dma_prog++ = OP_SYNC | 1 << 24 | 1 << 15 | BKTR_VRO; | 3122 *dma_prog++ = OP_SYNC | BKTR_GEN_IRQ | BKTR_RESYNC | BKTR_VRO; |
3124 *dma_prog++ = 0; /* NULL WORD */ 3125 *dma_prog++ = OP_JUMP ; 3126 *dma_prog = (u_long ) vtophys(bktr->odd_dma_prog); 3127 break; 3128 } 3129 3130 if (interlace == 2) { 3131 3132 target_buffer = (u_long) buffer + cols*2; 3133 3134 dma_prog = (u_long * ) bktr->odd_dma_prog; 3135 3136 /* sync vre */ | 3123 *dma_prog++ = 0; /* NULL WORD */ 3124 *dma_prog++ = OP_JUMP ; 3125 *dma_prog = (u_long ) vtophys(bktr->odd_dma_prog); 3126 break; 3127 } 3128 3129 if (interlace == 2) { 3130 3131 target_buffer = (u_long) buffer + cols*2; 3132 3133 dma_prog = (u_long * ) bktr->odd_dma_prog; 3134 3135 /* sync vre */ |
3137 *dma_prog++ = OP_SYNC | 1 << 24 | 1 << 15 | BKTR_FM1; | 3136 *dma_prog++ = OP_SYNC | BKTR_RESYNC | BKTR_FM1; |
3138 *dma_prog++ = 0; /* NULL WORD */ 3139 3140 for (i = 0; i < (rows/interlace) ; i++) { 3141 *dma_prog++ = inst; 3142 *dma_prog++ = target_buffer; 3143 *dma_prog++ = inst3; 3144 *dma_prog++ = target_buffer + b; 3145 target_buffer += interlace * ( cols*2); 3146 } 3147 } 3148 3149 /* sync vro IRQ bit */ | 3137 *dma_prog++ = 0; /* NULL WORD */ 3138 3139 for (i = 0; i < (rows/interlace) ; i++) { 3140 *dma_prog++ = inst; 3141 *dma_prog++ = target_buffer; 3142 *dma_prog++ = inst3; 3143 *dma_prog++ = target_buffer + b; 3144 target_buffer += interlace * ( cols*2); 3145 } 3146 } 3147 3148 /* sync vro IRQ bit */ |
3150 *dma_prog++ = OP_SYNC | 1 << 24 | 1 << 15 | BKTR_VRE; | 3149 *dma_prog++ = OP_SYNC | BKTR_GEN_IRQ | BKTR_RESYNC | BKTR_VRE; |
3151 *dma_prog++ = 0; /* NULL WORD */ 3152 *dma_prog++ = OP_JUMP ; 3153 *dma_prog++ = (u_long ) vtophys(bktr->dma_prog); 3154 3155 *dma_prog++ = OP_JUMP; 3156 *dma_prog++ = (u_long ) vtophys(bktr->dma_prog); 3157 *dma_prog++ = 0; /* NULL WORD */ 3158} --- 1104 unchanged lines hidden --- | 3150 *dma_prog++ = 0; /* NULL WORD */ 3151 *dma_prog++ = OP_JUMP ; 3152 *dma_prog++ = (u_long ) vtophys(bktr->dma_prog); 3153 3154 *dma_prog++ = OP_JUMP; 3155 *dma_prog++ = (u_long ) vtophys(bktr->dma_prog); 3156 *dma_prog++ = 0; /* NULL WORD */ 3157} --- 1104 unchanged lines hidden --- |