Lines Matching refs:b
118 int v, b; in cx_download() local
123 for (b=0; b<7; b+=2, i+=2) { in cx_download()
127 if (v >> b & 1) cr2 |= BCR2_TMS; in cx_download()
128 if (v >> b & 2) cr2 |= BCR2_TDI; in cx_download()
344 int cx_probe_irq (cx_board_t *b, int irq) in cx_probe_irq() argument
349 rev = inb (BSR(b->port)); in cx_probe_irq()
350 port = ((rev & BSR_VAR_MASK) != CRONYX_400) ? CS0(b->port) : CS1(b->port); in cx_probe_irq()
358 outb (BCR0(b->port), BCR0_NORESET | irqmask[irq]); in cx_probe_irq()
374 outb (BCR0(b->port), 0); in cx_probe_irq()
396 void cx_init (cx_board_t *b, int num, port_t port, int irq, int dma) in cx_init() argument
403 cx_init_800 (b, num, port, irq, dma, chain); in cx_init()
408 cx_init_2x (b, num, port, irq, dma, in cx_init()
428 cx_init_board (b, num, port, irq, dma, chain, in cx_init()
436 void cx_init_board (cx_board_t *b, int num, port_t port, int irq, int dma, in cx_init_board() argument
444 b->port = port; in cx_init_board()
445 b->num = num; in cx_init_board()
446 b->irq = irq; in cx_init_board()
447 b->dma = dma; in cx_init_board()
448 b->opt = board_opt_dflt; in cx_init_board()
450 b->type = B_SIGMA_XXX; in cx_init_board()
451 b->if0type = b->if8type = cx_iftype; in cx_init_board()
454 b->bcr0 = b->bcr0b = BCR0_NORESET | dmamask[b->dma] | irqmask[b->irq]; in cx_init_board()
457 b->bcr1 = b->bcr1b = 0; in cx_init_board()
462 strcpy (b->name, mod ? "m" : ""); in cx_init_board()
481 strcat (b->name, type); in cx_init_board()
486 b->chan[0].oscfreq = b->chan[1].oscfreq = in cx_init_board()
487 b->chan[2].oscfreq = b->chan[3].oscfreq = in cx_init_board()
488 b->chan[4].oscfreq = b->chan[5].oscfreq = in cx_init_board()
489 b->chan[6].oscfreq = b->chan[7].oscfreq = in cx_init_board()
491 strcat (b->name, "a"); in cx_init_board()
494 b->chan[0].oscfreq = b->chan[1].oscfreq = in cx_init_board()
495 b->chan[2].oscfreq = b->chan[3].oscfreq = in cx_init_board()
496 b->chan[4].oscfreq = b->chan[5].oscfreq = in cx_init_board()
497 b->chan[6].oscfreq = b->chan[7].oscfreq = in cx_init_board()
499 strcat (b->name, "b"); in cx_init_board()
507 strcat (b->name, mod2 ? "/m" : "/"); in cx_init_board()
526 strcat (b->name, type); in cx_init_board()
531 b->chan[8].oscfreq = b->chan[9].oscfreq = in cx_init_board()
532 b->chan[10].oscfreq = b->chan[11].oscfreq = in cx_init_board()
533 b->chan[12].oscfreq = b->chan[13].oscfreq = in cx_init_board()
534 b->chan[14].oscfreq = b->chan[15].oscfreq = in cx_init_board()
536 strcat (b->name, "a"); in cx_init_board()
539 b->chan[8].oscfreq = b->chan[9].oscfreq = in cx_init_board()
540 b->chan[10].oscfreq = b->chan[11].oscfreq = in cx_init_board()
541 b->chan[12].oscfreq = b->chan[13].oscfreq = in cx_init_board()
542 b->chan[14].oscfreq = b->chan[15].oscfreq = in cx_init_board()
544 strcat (b->name, "b"); in cx_init_board()
551 b->chan[i+0].port = CS0(port); in cx_init_board()
552 b->chan[i+4].port = cx_probe_chip (CS1A(port)) ? in cx_init_board()
554 b->chan[i+8].port = CS0(port+0x10); in cx_init_board()
555 b->chan[i+12].port = CS1(port+0x10); in cx_init_board()
557 for (c=b->chan; c<b->chan+NCHAN; ++c) { in cx_init_board()
558 c->board = b; in cx_init_board()
559 c->num = c - b->chan; in cx_init_board()
568 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
571 b->chan[0].type = T_UNIV_RS232; in cx_init_board()
574 b->chan[0].type = T_UNIV_RS232; in cx_init_board()
576 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
579 b->chan[0].type = T_UNIV_V35; in cx_init_board()
581 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
584 b->chan[0].type = T_UNIV_V35; in cx_init_board()
586 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
589 b->chan[0].type = T_UNIV_V35; in cx_init_board()
591 b->chan[i].type = T_SYNC_RS232; in cx_init_board()
594 b->chan[0].type = T_UNIV_V35; in cx_init_board()
596 b->chan[i].type = T_SYNC_RS232; in cx_init_board()
598 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
601 b->chan[0].type = T_UNIV_V35; in cx_init_board()
603 b->chan[i].type = T_SYNC_V35; in cx_init_board()
606 b->chan[0].type = T_UNIV_V35; in cx_init_board()
608 b->chan[i].type = T_SYNC_V35; in cx_init_board()
610 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
613 b->chan[0].type = T_UNIV_RS449; in cx_init_board()
615 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
618 b->chan[0].type = T_UNIV_RS449; in cx_init_board()
620 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
623 b->chan[0].type = T_UNIV_RS449; in cx_init_board()
625 b->chan[i].type = T_SYNC_RS232; in cx_init_board()
628 b->chan[0].type = T_UNIV_RS449; in cx_init_board()
630 b->chan[i].type = T_SYNC_RS232; in cx_init_board()
632 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
635 b->chan[0].type = T_UNIV_RS449; in cx_init_board()
637 b->chan[i].type = T_SYNC_RS449; in cx_init_board()
640 b->chan[0].type = T_UNIV_RS449; in cx_init_board()
642 b->chan[i].type = T_SYNC_RS449; in cx_init_board()
644 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
655 b->chan[8].type = T_UNIV_RS232; in cx_init_board()
658 b->chan[8].type = T_UNIV_RS232; in cx_init_board()
660 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
663 b->chan[8].type = T_UNIV_V35; in cx_init_board()
665 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
668 b->chan[8].type = T_UNIV_V35; in cx_init_board()
670 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
673 b->chan[8].type = T_UNIV_V35; in cx_init_board()
675 b->chan[i].type = T_SYNC_RS232; in cx_init_board()
678 b->chan[8].type = T_UNIV_V35; in cx_init_board()
680 b->chan[i].type = T_SYNC_RS232; in cx_init_board()
682 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
685 b->chan[8].type = T_UNIV_V35; in cx_init_board()
687 b->chan[i].type = T_SYNC_V35; in cx_init_board()
690 b->chan[8].type = T_UNIV_V35; in cx_init_board()
692 b->chan[i].type = T_SYNC_V35; in cx_init_board()
694 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
697 b->chan[8].type = T_UNIV_RS449; in cx_init_board()
699 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
702 b->chan[8].type = T_UNIV_RS449; in cx_init_board()
704 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
707 b->chan[8].type = T_UNIV_RS449; in cx_init_board()
709 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
712 b->chan[8].type = T_UNIV_RS449; in cx_init_board()
714 b->chan[i].type = T_SYNC_RS232; in cx_init_board()
716 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
719 b->chan[8].type = T_UNIV_RS449; in cx_init_board()
721 b->chan[i].type = T_SYNC_RS449; in cx_init_board()
724 b->chan[8].type = T_UNIV_RS449; in cx_init_board()
726 b->chan[i].type = T_SYNC_RS449; in cx_init_board()
728 b->chan[i].type = T_UNIV_RS232; in cx_init_board()
733 b->nuniv = b->nsync = b->nasync = 0; in cx_init_board()
734 for (c=b->chan; c<b->chan+NCHAN; ++c) in cx_init_board()
736 case T_ASYNC: ++b->nasync; break; in cx_init_board()
740 case T_UNIV_V35: ++b->nuniv; break; in cx_init_board()
743 case T_SYNC_RS449: ++b->nsync; break; in cx_init_board()
746 cx_reinit_board (b); in cx_init_board()
752 void cx_init_800 (cx_board_t *b, int num, port_t port, int irq, int dma, in cx_init_800() argument
759 b->port = port; in cx_init_800()
760 b->num = num; in cx_init_800()
761 b->irq = irq; in cx_init_800()
762 b->dma = dma; in cx_init_800()
763 b->opt = board_opt_dflt; in cx_init_800()
764 b->type = B_SIGMA_800; in cx_init_800()
767 b->bcr0 = b->bcr0b = dmamask[b->dma] | irqmask[b->irq]; in cx_init_800()
770 b->bcr1 = b->bcr1b = 0; in cx_init_800()
772 strcpy (b->name, "800"); in cx_init_800()
774 strcat (b->name, "/800"); in cx_init_800()
778 b->chan[i+0].port = CS0(port); in cx_init_800()
779 b->chan[i+4].port = cx_probe_chip (CS1A(port)) ? in cx_init_800()
781 b->chan[i+8].port = CS0(port+0x10); in cx_init_800()
782 b->chan[i+12].port = CS1(port+0x10); in cx_init_800()
784 for (c=b->chan; c<b->chan+NCHAN; ++c) { in cx_init_800()
785 c->board = b; in cx_init_800()
786 c->num = c - b->chan; in cx_init_800()
791 b->nuniv = b->nsync = b->nasync = 0; in cx_init_800()
792 for (c=b->chan; c<b->chan+NCHAN; ++c) in cx_init_800()
794 case T_ASYNC: ++b->nasync; break; in cx_init_800()
798 case T_UNIV_V35: ++b->nuniv; break; in cx_init_800()
801 case T_SYNC_RS449: ++b->nsync; break; in cx_init_800()
804 cx_reinit_board (b); in cx_init_800()
810 void cx_init_2x (cx_board_t *b, int num, port_t port, int irq, int dma, in cx_init_2x() argument
817 b->port = port; in cx_init_2x()
818 b->num = num; in cx_init_2x()
819 b->irq = irq; in cx_init_2x()
820 b->dma = dma; in cx_init_2x()
821 b->opt = board_opt_dflt; in cx_init_2x()
823 b->type = B_SIGMA_2X; in cx_init_2x()
826 b->bcr0 = BCR0_NORESET | dmamask[b->dma] | irqmask[b->irq]; in cx_init_2x()
827 if (b->type == B_SIGMA_2X && b->opt.fast) in cx_init_2x()
828 b->bcr0 |= BCR02X_FAST; in cx_init_2x()
831 b->bcr1 = 0; in cx_init_2x()
835 b->chan[i+0].port = CS0(port); in cx_init_2x()
836 b->chan[i+4].port = CS1(port); in cx_init_2x()
837 b->chan[i+8].port = CS0(port+0x10); in cx_init_2x()
838 b->chan[i+12].port = CS1(port+0x10); in cx_init_2x()
840 for (c=b->chan; c<b->chan+NCHAN; ++c) { in cx_init_2x()
841 c->board = b; in cx_init_2x()
842 c->num = c - b->chan; in cx_init_2x()
848 strcpy (b->name, "22"); in cx_init_2x()
849 b->chan[0].type = T_UNIV; in cx_init_2x()
850 b->chan[1].type = T_UNIV; in cx_init_2x()
851 b->nsync = b->nasync = 0; in cx_init_2x()
852 b->nuniv = 2; in cx_init_2x()
854 strcpy (b->name, "24"); in cx_init_2x()
855 b->chan[2].type = T_UNIV; in cx_init_2x()
856 b->chan[3].type = T_UNIV; in cx_init_2x()
857 b->nuniv += 2; in cx_init_2x()
859 strcat (b->name, (osc & BSR2X_OSC_33) ? "c" : "a"); in cx_init_2x()
860 cx_reinit_board (b); in cx_init_2x()
866 void cx_reinit_board (cx_board_t *b) in cx_reinit_board() argument
870 b->opt = board_opt_dflt; in cx_reinit_board()
871 if (b->type == B_SIGMA_2X) { in cx_reinit_board()
872 b->bcr0 &= ~BCR02X_FAST; in cx_reinit_board()
873 if (b->opt.fast) in cx_reinit_board()
874 b->bcr0 |= BCR02X_FAST; in cx_reinit_board()
876 b->if0type = b->if8type = cx_iftype; in cx_reinit_board()
877 for (c=b->chan; c<b->chan+NCHAN; ++c) { in cx_reinit_board()
909 int cx_setup_board (cx_board_t *b, const unsigned char *firmware, in cx_setup_board() argument
915 outb (DMA_MASK, (b->dma & 3) | DMA_MASK_CLEAR); in cx_setup_board()
918 outb (BCR0(b->port), 0); in cx_setup_board()
919 if (b->chan[8].type || b->chan[12].type) in cx_setup_board()
920 outb (BCR0(b->port+0x10), 0); in cx_setup_board()
923 if (b->type == B_SIGMA_800) { in cx_setup_board()
925 outb (BCR2(b->port), BCR2_TMS); in cx_setup_board()
926 if (b->chan[8].type || b->chan[12].type) in cx_setup_board()
927 outb (BCR2(b->port+0x10), BCR2_TMS); in cx_setup_board()
928 outb (BCR2(b->port), 0); in cx_setup_board()
929 if (b->chan[8].type || b->chan[12].type) in cx_setup_board()
930 outb (BCR2(b->port+0x10), 0); in cx_setup_board()
933 (! cx_download (b->port, firmware, bits, tst) || in cx_setup_board()
934 ((b->chan[8].type || b->chan[12].type) && in cx_setup_board()
935 ! cx_download (b->port+0x10, firmware, bits, tst)))) in cx_setup_board()
943 outb (BCR0(b->port), b->bcr0); in cx_setup_board()
944 if (b->chan[8].type || b->chan[12].type) in cx_setup_board()
945 outb (BCR0(b->port+0x10), b->bcr0b); in cx_setup_board()
948 outw (BCR1(b->port), b->bcr1); in cx_setup_board()
949 if (b->chan[8].type || b->chan[12].type) in cx_setup_board()
950 outw (BCR1(b->port+0x10), b->bcr1b); in cx_setup_board()
952 if (b->type == B_SIGMA_800) in cx_setup_board()
953 outb (BCR2(b->port), b->opt.fast & in cx_setup_board()
958 if (b->chan[i].type != T_NONE) in cx_setup_board()
959 cx_setup_chip (b->chan + i); in cx_setup_board()
962 outb (DMA_MODE, (b->dma & 3) | DMA_MODE_MASTER); in cx_setup_board()
965 outb (DMA_MASK, b->dma & 3); in cx_setup_board()
969 if (b->chan[i].type != T_NONE) in cx_setup_board()
970 cx_setup_chan (b->chan + i); in cx_setup_board()
1141 cx_board_t *b = c->board; in cx_set_dtr() local
1145 if (b->type == B_SIGMA_2X) { in cx_set_dtr()
1146 if (on) b->bcr1 |= BCR1_DTR(c->num); in cx_set_dtr()
1147 else b->bcr1 &= ~BCR1_DTR(c->num); in cx_set_dtr()
1148 outw (BCR1(b->port), b->bcr1); in cx_set_dtr()
1151 if (b->type == B_SIGMA_800) { in cx_set_dtr()
1153 if (on) b->bcr1b |= BCR1800_DTR(c->num); in cx_set_dtr()
1154 else b->bcr1b &= ~BCR1800_DTR(c->num); in cx_set_dtr()
1155 outb (BCR1(b->port+0x10), b->bcr1b); in cx_set_dtr()
1157 if (on) b->bcr1 |= BCR1800_DTR(c->num); in cx_set_dtr()
1158 else b->bcr1 &= ~BCR1800_DTR(c->num); in cx_set_dtr()
1159 outb (BCR1(b->port), b->bcr1); in cx_set_dtr()
1179 if (on) b->bcr1 |= BCR1_DTR(c->num); in cx_set_dtr()
1180 else b->bcr1 &= ~BCR1_DTR(c->num); in cx_set_dtr()
1181 outw (BCR1(b->port), b->bcr1); in cx_set_dtr()
1188 if (on) b->bcr1b |= BCR1_DTR(c->num & 3); in cx_set_dtr()
1189 else b->bcr1b &= ~BCR1_DTR(c->num & 3); in cx_set_dtr()
1190 outw (BCR1(b->port+0x10), b->bcr1b); in cx_set_dtr()
1313 void cx_led (cx_board_t *b, int on) in cx_led() argument
1315 switch (b->type) { in cx_led()
1317 if (on) b->bcr0 |= BCR02X_LED; in cx_led()
1318 else b->bcr0 &= ~BCR02X_LED; in cx_led()
1319 outb (BCR0(b->port), b->bcr0); in cx_led()
1324 void cx_disable_dma (cx_board_t *b) in cx_disable_dma() argument
1328 outb (DMA_MASK, (b->dma & 3) | DMA_MASK_CLEAR); in cx_disable_dma()