Lines Matching defs:btv

35 bttv_risc_packed(struct bttv *btv, struct btcx_riscmem *risc,
54 if ((rc = btcx_riscmem_alloc(btv->c.pci,risc,instructions)) < 0)
70 if ((btv->opt_vcr_hack) &&
114 bttv_risc_planar(struct bttv *btv, struct btcx_riscmem *risc,
137 if ((rc = btcx_riscmem_alloc(btv->c.pci,risc,instructions*4*5)) < 0)
150 if ((btv->opt_vcr_hack) &&
235 bttv_risc_overlay(struct bttv *btv, struct btcx_riscmem *risc,
256 if ((rc = btcx_riscmem_alloc(btv->c.pci,risc,dwords*4)) < 0) {
266 addr = (unsigned long)btv->fbuf.base;
267 addr += btv->fbuf.fmt.bytesperline * ov->w.top;
272 line++, addr += btv->fbuf.fmt.bytesperline) {
273 if ((btv->opt_vcr_hack) &&
326 bttv_calc_geo_old(struct bttv *btv, struct bttv_geometry *geo,
337 if (btv->input == btv->dig) {
360 if (btv->opt_combfilter) {
370 bttv_calc_geo (struct bttv * btv,
387 || btv->input == btv->dig) {
388 bttv_calc_geo_old(btv, geo, width, height,
416 if (btv->opt_combfilter) {
426 bttv_apply_geo(struct bttv *btv, struct bttv_geometry *geo, int odd)
453 bttv_set_dma(struct bttv *btv, int override)
458 btv->cap_ctl = 0;
459 if (NULL != btv->curr.top) btv->cap_ctl |= 0x02;
460 if (NULL != btv->curr.bottom) btv->cap_ctl |= 0x01;
461 if (NULL != btv->cvbi) btv->cap_ctl |= 0x0c;
464 capctl |= (btv->cap_ctl & 0x03) ? 0x03 : 0x00; /* capture */
465 capctl |= (btv->cap_ctl & 0x0c) ? 0x0c : 0x00; /* vbi data */
469 btv->c.nr,capctl,btv->loop_irq,
470 btv->cvbi ? (unsigned long long)btv->cvbi->top.dma : 0,
471 btv->curr.top ? (unsigned long long)btv->curr.top->top.dma : 0,
472 btv->cvbi ? (unsigned long long)btv->cvbi->bottom.dma : 0,
473 btv->curr.bottom ? (unsigned long long)btv->curr.bottom->bottom.dma : 0);
476 if (btv->loop_irq) {
478 cmd |= (btv->loop_irq & 0x0f) << 16;
479 cmd |= (~btv->loop_irq & 0x0f) << 20;
481 if (btv->curr.frame_irq || btv->loop_irq || btv->cvbi) {
482 mod_timer(&btv->timeout, jiffies+BTTV_TIMEOUT);
484 del_timer(&btv->timeout);
486 btv->main.cpu[RISC_SLOT_LOOP] = cpu_to_le32(cmd);
490 if (btv->dma_on)
492 btwrite(btv->main.dma, BT848_RISC_STRT_ADD);
494 btv->dma_on = 1;
496 if (!btv->dma_on)
499 btv->dma_on = 0;
505 bttv_risc_init_main(struct bttv *btv)
509 if ((rc = btcx_riscmem_alloc(btv->c.pci,&btv->main,PAGE_SIZE)) < 0)
512 btv->c.nr, (unsigned long long)btv->main.dma);
514 btv->main.cpu[0] = cpu_to_le32(BT848_RISC_SYNC | BT848_RISC_RESYNC |
516 btv->main.cpu[1] = cpu_to_le32(0);
517 btv->main.cpu[2] = cpu_to_le32(BT848_RISC_JUMP);
518 btv->main.cpu[3] = cpu_to_le32(btv->main.dma + (4<<2));
521 btv->main.cpu[4] = cpu_to_le32(BT848_RISC_JUMP);
522 btv->main.cpu[5] = cpu_to_le32(btv->main.dma + (6<<2));
523 btv->main.cpu[6] = cpu_to_le32(BT848_RISC_JUMP);
524 btv->main.cpu[7] = cpu_to_le32(btv->main.dma + (8<<2));
526 btv->main.cpu[8] = cpu_to_le32(BT848_RISC_SYNC | BT848_RISC_RESYNC |
528 btv->main.cpu[9] = cpu_to_le32(0);
531 btv->main.cpu[10] = cpu_to_le32(BT848_RISC_JUMP);
532 btv->main.cpu[11] = cpu_to_le32(btv->main.dma + (12<<2));
533 btv->main.cpu[12] = cpu_to_le32(BT848_RISC_JUMP);
534 btv->main.cpu[13] = cpu_to_le32(btv->main.dma + (14<<2));
537 btv->main.cpu[14] = cpu_to_le32(BT848_RISC_JUMP);
538 btv->main.cpu[15] = cpu_to_le32(btv->main.dma + (0<<2));
544 bttv_risc_hook(struct bttv *btv, int slot, struct btcx_riscmem *risc,
548 unsigned long next = btv->main.dma + ((slot+2) << 2);
551 d2printk("%d: risc=%p slot[%d]=NULL\n", btv->c.nr, risc, slot);
552 btv->main.cpu[slot+1] = cpu_to_le32(next);
555 btv->c.nr, risc, slot,
565 btv->main.cpu[slot+1] = cpu_to_le32(risc->dma);
571 bttv_dma_free(struct videobuf_queue *q,struct bttv *btv, struct bttv_buffer *buf)
579 btcx_riscmem_free(btv->c.pci,&buf->bottom);
580 btcx_riscmem_free(btv->c.pci,&buf->top);
585 bttv_buffer_activate_vbi(struct bttv *btv,
630 bttv_risc_hook(btv, RISC_SLOT_O_VBI, top, top_irq_flags);
631 bttv_risc_hook(btv, RISC_SLOT_E_VBI, bottom, bottom_irq_flags);
637 bttv_buffer_activate_video(struct bttv *btv,
654 bttv_apply_geo(btv, &set->top->geo, 1);
655 bttv_apply_geo(btv, &set->bottom->geo,0);
656 bttv_risc_hook(btv, RISC_SLOT_O_FIELD, &set->top->top,
658 bttv_risc_hook(btv, RISC_SLOT_E_FIELD, &set->bottom->bottom,
668 bttv_apply_geo(btv, &set->top->geo,1);
669 bttv_apply_geo(btv, &set->top->geo,0);
670 bttv_risc_hook(btv, RISC_SLOT_O_FIELD, &set->top->top,
672 bttv_risc_hook(btv, RISC_SLOT_E_FIELD, NULL, 0);
679 bttv_apply_geo(btv, &set->bottom->geo,1);
680 bttv_apply_geo(btv, &set->bottom->geo,0);
681 bttv_risc_hook(btv, RISC_SLOT_O_FIELD, NULL, 0);
682 bttv_risc_hook(btv, RISC_SLOT_E_FIELD, &set->bottom->bottom,
687 bttv_risc_hook(btv, RISC_SLOT_O_FIELD, NULL, 0);
688 bttv_risc_hook(btv, RISC_SLOT_E_FIELD, NULL, 0);
697 bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf)
703 btv->c.nr, v4l2_field_names[buf->vb.field],
711 bttv_calc_geo(btv,&buf->geo,buf->vb.width,buf->vb.height,
717 bttv_risc_packed(btv,&buf->top,dma->sglist,
723 bttv_risc_packed(btv,&buf->bottom,dma->sglist,
727 bttv_risc_packed(btv,&buf->top,dma->sglist,
729 bttv_risc_packed(btv,&buf->bottom,dma->sglist,
733 bttv_risc_packed(btv,&buf->top,dma->sglist,
735 bttv_risc_packed(btv,&buf->bottom,dma->sglist,
765 bttv_calc_geo(btv,&buf->geo,buf->vb.width,
768 bttv_risc_planar(btv, &buf->top, dma->sglist,
774 bttv_calc_geo(btv,&buf->geo,buf->vb.width,
777 bttv_risc_planar(btv, &buf->bottom, dma->sglist,
783 bttv_calc_geo(btv,&buf->geo,buf->vb.width,
789 bttv_risc_planar(btv,&buf->top,
796 bttv_risc_planar(btv,&buf->bottom,
806 bttv_calc_geo(btv,&buf->geo,buf->vb.width,
812 bttv_risc_planar(btv,&buf->top,
820 bttv_risc_planar(btv,&buf->bottom,
838 bttv_calc_geo(btv,&buf->geo,tvnorm->swidth,tvnorm->sheight,
840 bttv_risc_packed(btv, &buf->top, dma->sglist,
843 bttv_risc_packed(btv, &buf->bottom, dma->sglist,
857 bttv_overlay_risc(struct bttv *btv,
864 btv->c.nr, v4l2_field_names[buf->vb.field],
868 bttv_calc_geo(btv,&buf->geo,ov->w.width,ov->w.height,
875 bttv_risc_overlay(btv, &buf->top, fmt, ov, 0, 0);
878 bttv_risc_overlay(btv, &buf->bottom, fmt, ov, 0, 0);
881 bttv_risc_overlay(btv, &buf->top, fmt, ov, 0, 1);
882 bttv_risc_overlay(btv, &buf->bottom, fmt, ov, 1, 0);