• Home
  • Raw
  • Download

Lines Matching refs:card

59 static void c4_dispatch_tx(avmcard *card);
146 static inline int wait_for_doorbell(avmcard *card, unsigned long t) in wait_for_doorbell() argument
151 while (c4inmeml(card->mbase + DOORBELL) != 0xffffffff) { in wait_for_doorbell()
159 static int c4_poke(avmcard *card, unsigned long off, unsigned long value) in c4_poke() argument
162 if (wait_for_doorbell(card, HZ / 10) < 0) in c4_poke()
165 c4outmeml(card->mbase + MBOX_PEEK_POKE, off); in c4_poke()
166 c4outmeml(card->mbase + DOORBELL, DBELL_ADDR); in c4_poke()
168 if (wait_for_doorbell(card, HZ / 10) < 0) in c4_poke()
171 c4outmeml(card->mbase + MBOX_PEEK_POKE, value); in c4_poke()
172 c4outmeml(card->mbase + DOORBELL, DBELL_DATA | DBELL_ADDR); in c4_poke()
177 static int c4_peek(avmcard *card, unsigned long off, unsigned long *valuep) in c4_peek() argument
179 if (wait_for_doorbell(card, HZ / 10) < 0) in c4_peek()
182 c4outmeml(card->mbase + MBOX_PEEK_POKE, off); in c4_peek()
183 c4outmeml(card->mbase + DOORBELL, DBELL_RNWR | DBELL_ADDR); in c4_peek()
185 if (wait_for_doorbell(card, HZ / 10) < 0) in c4_peek()
188 *valuep = c4inmeml(card->mbase + MBOX_PEEK_POKE); in c4_peek()
195 static int c4_load_t4file(avmcard *card, capiloaddatapart *t4file) in c4_load_t4file() argument
211 if (c4_poke(card, loadoff, val)) { in c4_load_t4file()
213 card->name); in c4_load_t4file()
228 if (c4_poke(card, loadoff, val)) { in c4_load_t4file()
230 card->name); in c4_load_t4file()
296 static void c4_reset(avmcard *card) in c4_reset() argument
300 c4outmeml(card->mbase + DOORBELL, DBELL_RESET_ARM); in c4_reset()
303 while (c4inmeml(card->mbase + DOORBELL) != 0xffffffff) { in c4_reset()
306 c4outmeml(card->mbase + DOORBELL, DBELL_ADDR); in c4_reset()
310 c4_poke(card, DC21285_ARMCSR_BASE + CHAN_1_CONTROL, 0); in c4_reset()
311 c4_poke(card, DC21285_ARMCSR_BASE + CHAN_2_CONTROL, 0); in c4_reset()
316 static int c4_detect(avmcard *card) in c4_detect() argument
320 c4outmeml(card->mbase + PCI_OUT_INT_MASK, 0x0c); in c4_detect()
321 if (c4inmeml(card->mbase + PCI_OUT_INT_MASK) != 0x0c) in c4_detect()
324 c4outmeml(card->mbase + DOORBELL, DBELL_RESET_ARM); in c4_detect()
327 while (c4inmeml(card->mbase + DOORBELL) != 0xffffffff) { in c4_detect()
330 c4outmeml(card->mbase + DOORBELL, DBELL_ADDR); in c4_detect()
334 c4_poke(card, DC21285_ARMCSR_BASE + CHAN_1_CONTROL, 0); in c4_detect()
335 c4_poke(card, DC21285_ARMCSR_BASE + CHAN_2_CONTROL, 0); in c4_detect()
337 c4outmeml(card->mbase + MAILBOX_0, 0x55aa55aa); in c4_detect()
338 if (c4inmeml(card->mbase + MAILBOX_0) != 0x55aa55aa) return 3; in c4_detect()
340 c4outmeml(card->mbase + MAILBOX_0, 0xaa55aa55); in c4_detect()
341 if (c4inmeml(card->mbase + MAILBOX_0) != 0xaa55aa55) return 4; in c4_detect()
343 if (c4_poke(card, DC21285_ARMCSR_BASE + DBELL_SA_MASK, 0)) return 5; in c4_detect()
344 if (c4_poke(card, DC21285_ARMCSR_BASE + DBELL_PCI_MASK, 0)) return 6; in c4_detect()
345 if (c4_poke(card, DC21285_ARMCSR_BASE + SA_CONTROL, SA_CTL_ALLRIGHT)) in c4_detect()
347 if (c4_poke(card, DC21285_ARMCSR_BASE + XBUS_CYCLE, INIT_XBUS_CYCLE)) in c4_detect()
349 if (c4_poke(card, DC21285_ARMCSR_BASE + XBUS_STROBE, INIT_XBUS_STROBE)) in c4_detect()
351 if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_TIMING, 0)) return 9; in c4_detect()
355 if (c4_peek(card, DC21285_DRAM_A0MR, &dummy)) return 10; in c4_detect()
356 if (c4_peek(card, DC21285_DRAM_A1MR, &dummy)) return 11; in c4_detect()
357 if (c4_peek(card, DC21285_DRAM_A2MR, &dummy)) return 12; in c4_detect()
358 if (c4_peek(card, DC21285_DRAM_A3MR, &dummy)) return 13; in c4_detect()
360 if (c4_poke(card, DC21285_DRAM_A0MR + CAS_OFFSET, 0)) return 14; in c4_detect()
361 if (c4_poke(card, DC21285_DRAM_A1MR + CAS_OFFSET, 0)) return 15; in c4_detect()
362 if (c4_poke(card, DC21285_DRAM_A2MR + CAS_OFFSET, 0)) return 16; in c4_detect()
363 if (c4_poke(card, DC21285_DRAM_A3MR + CAS_OFFSET, 0)) return 17; in c4_detect()
367 if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_TIMING, DRAM_TIMING_DEF)) in c4_detect()
370 if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_0, DRAM_AD_SZ_DEF0)) in c4_detect()
372 if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_1, DRAM_AD_SZ_NULL)) in c4_detect()
374 if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_2, DRAM_AD_SZ_NULL)) in c4_detect()
376 if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_3, DRAM_AD_SZ_NULL)) in c4_detect()
381 if (c4_poke(card, 0x000000, 0x11111111) in c4_detect()
382 || c4_poke(card, 0x400000, 0x22222222) in c4_detect()
383 || c4_poke(card, 0x800000, 0x33333333) in c4_detect()
384 || c4_poke(card, 0xC00000, 0x44444444)) in c4_detect()
387 if (c4_peek(card, 0x000000, &dummy) || dummy != 0x11111111 in c4_detect()
388 || c4_peek(card, 0x400000, &dummy) || dummy != 0x22222222 in c4_detect()
389 || c4_peek(card, 0x800000, &dummy) || dummy != 0x33333333 in c4_detect()
390 || c4_peek(card, 0xC00000, &dummy) || dummy != 0x44444444) in c4_detect()
393 if (c4_poke(card, 0x000000, 0x55555555) in c4_detect()
394 || c4_poke(card, 0x400000, 0x66666666) in c4_detect()
395 || c4_poke(card, 0x800000, 0x77777777) in c4_detect()
396 || c4_poke(card, 0xC00000, 0x88888888)) in c4_detect()
399 if (c4_peek(card, 0x000000, &dummy) || dummy != 0x55555555 in c4_detect()
400 || c4_peek(card, 0x400000, &dummy) || dummy != 0x66666666 in c4_detect()
401 || c4_peek(card, 0x800000, &dummy) || dummy != 0x77777777 in c4_detect()
402 || c4_peek(card, 0xC00000, &dummy) || dummy != 0x88888888) in c4_detect()
410 static void c4_dispatch_tx(avmcard *card) in c4_dispatch_tx() argument
412 avmcard_dmainfo *dma = card->dma; in c4_dispatch_tx()
420 if (card->csr & DBELL_DOWN_ARM) { /* tx busy */ in c4_dispatch_tx()
427 printk(KERN_DEBUG "%s: tx underrun\n", card->name); in c4_dispatch_tx()
451 printk(KERN_DEBUG "%s: tx put msg len=%d\n", card->name, txlen); in c4_dispatch_tx()
457 printk(KERN_INFO "%s: ack to c4\n", card->name); in c4_dispatch_tx()
461 card->name, skb->data[2], txlen); in c4_dispatch_tx()
468 c4outmeml(card->mbase + MBOX_DOWN_ADDR, dma->sendbuf.dmaaddr); in c4_dispatch_tx()
469 c4outmeml(card->mbase + MBOX_DOWN_LEN, txlen); in c4_dispatch_tx()
471 card->csr |= DBELL_DOWN_ARM; in c4_dispatch_tx()
473 c4outmeml(card->mbase + DOORBELL, DBELL_DOWN_ARM); in c4_dispatch_tx()
480 static void queue_pollack(avmcard *card) in queue_pollack() argument
488 card->name); in queue_pollack()
497 skb_queue_tail(&card->dma->send_queue, skb); in queue_pollack()
498 c4_dispatch_tx(card); in queue_pollack()
503 static void c4_handle_rx(avmcard *card) in c4_handle_rx() argument
505 avmcard_dmainfo *dma = card->dma; in c4_handle_rx()
516 printk(KERN_DEBUG "%s: rx 0x%x len=%lu\n", card->name, in c4_handle_rx()
524 MsgLen = _get_slice(&p, card->msgbuf); in c4_handle_rx()
525 DataB3Len = _get_slice(&p, card->databuf); in c4_handle_rx()
526 cidx = CAPIMSG_CONTROLLER(card->msgbuf)-card->cardnr; in c4_handle_rx()
527 if (cidx >= card->nlogcontr) cidx = 0; in c4_handle_rx()
528 ctrl = &card->ctrlinfo[cidx].capi_ctrl; in c4_handle_rx()
531 memset(card->msgbuf + MsgLen, 0, 30 - MsgLen); in c4_handle_rx()
533 CAPIMSG_SETLEN(card->msgbuf, 30); in c4_handle_rx()
537 card->name); in c4_handle_rx()
539 memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); in c4_handle_rx()
540 memcpy(skb_put(skb, DataB3Len), card->databuf, DataB3Len); in c4_handle_rx()
548 MsgLen = _get_slice(&p, card->msgbuf); in c4_handle_rx()
549 cidx = CAPIMSG_CONTROLLER(card->msgbuf)-card->cardnr; in c4_handle_rx()
550 if (cidx >= card->nlogcontr) cidx = 0; in c4_handle_rx()
551 cinfo = &card->ctrlinfo[cidx]; in c4_handle_rx()
552 ctrl = &card->ctrlinfo[cidx].capi_ctrl; in c4_handle_rx()
556 card->name); in c4_handle_rx()
558 memcpy(skb_put(skb, MsgLen), card->msgbuf, MsgLen); in c4_handle_rx()
573 cidx = (NCCI & 0x7f) - card->cardnr; in c4_handle_rx()
574 if (cidx >= card->nlogcontr) cidx = 0; in c4_handle_rx()
576 capilib_new_ncci(&card->ctrlinfo[cidx].ncci_head, ApplId, NCCI, WindowSize); in c4_handle_rx()
586 cidx = (NCCI & 0x7f) - card->cardnr; in c4_handle_rx()
587 if (cidx >= card->nlogcontr) cidx = 0; in c4_handle_rx()
588 capilib_free_ncci(&card->ctrlinfo[cidx].ncci_head, ApplId, NCCI); in c4_handle_rx()
594 printk(KERN_INFO "%s: poll from c4\n", card->name); in c4_handle_rx()
597 queue_pollack(card); in c4_handle_rx()
598 for (cidx = 0; cidx < card->nr_controllers; cidx++) { in c4_handle_rx()
599 ctrl = &card->ctrlinfo[cidx].capi_ctrl; in c4_handle_rx()
605 for (cidx = 0; cidx < card->nr_controllers; cidx++) { in c4_handle_rx()
606 ctrl = &card->ctrlinfo[cidx].capi_ctrl; in c4_handle_rx()
613 cidx = card->nlogcontr; in c4_handle_rx()
614 if (cidx >= card->nr_controllers) { in c4_handle_rx()
616 card->name, cidx + 1); in c4_handle_rx()
619 card->nlogcontr++; in c4_handle_rx()
620 cinfo = &card->ctrlinfo[cidx]; in c4_handle_rx()
625 card->name, in c4_handle_rx()
633 MsgLen = _get_slice(&p, card->msgbuf); in c4_handle_rx()
634 card->msgbuf[MsgLen] = 0; in c4_handle_rx()
636 && (card->msgbuf[MsgLen - 1] == '\n' in c4_handle_rx()
637 || card->msgbuf[MsgLen - 1] == '\r')) { in c4_handle_rx()
638 card->msgbuf[MsgLen - 1] = 0; in c4_handle_rx()
642 card->name, ApplId, card->msgbuf); in c4_handle_rx()
646 MsgLen = _get_slice(&p, card->msgbuf); in c4_handle_rx()
647 card->msgbuf[MsgLen] = 0; in c4_handle_rx()
649 && (card->msgbuf[MsgLen - 1] == '\n' in c4_handle_rx()
650 || card->msgbuf[MsgLen - 1] == '\r')) { in c4_handle_rx()
651 card->msgbuf[MsgLen - 1] = 0; in c4_handle_rx()
654 printk(KERN_INFO "%s: DEBUG: %s\n", card->name, card->msgbuf); in c4_handle_rx()
659 card->name, b1cmd); in c4_handle_rx()
666 static irqreturn_t c4_handle_interrupt(avmcard *card) in c4_handle_interrupt() argument
671 spin_lock_irqsave(&card->lock, flags); in c4_handle_interrupt()
672 status = c4inmeml(card->mbase + DOORBELL); in c4_handle_interrupt()
676 c4outmeml(card->mbase + PCI_OUT_INT_MASK, 0x0c); in c4_handle_interrupt()
677 spin_unlock_irqrestore(&card->lock, flags); in c4_handle_interrupt()
678 if (card->nlogcontr == 0) in c4_handle_interrupt()
680 printk(KERN_ERR "%s: unexpected reset\n", card->name); in c4_handle_interrupt()
681 for (i = 0; i < card->nr_controllers; i++) { in c4_handle_interrupt()
682 avmctrl_info *cinfo = &card->ctrlinfo[i]; in c4_handle_interrupt()
684 spin_lock_irqsave(&card->lock, flags); in c4_handle_interrupt()
686 spin_unlock_irqrestore(&card->lock, flags); in c4_handle_interrupt()
689 card->nlogcontr = 0; in c4_handle_interrupt()
695 spin_unlock_irqrestore(&card->lock, flags); in c4_handle_interrupt()
698 c4outmeml(card->mbase + DOORBELL, status); in c4_handle_interrupt()
701 card->dma->recvlen = c4inmeml(card->mbase + MBOX_UP_LEN); in c4_handle_interrupt()
702 c4outmeml(card->mbase + MBOX_UP_LEN, 0); in c4_handle_interrupt()
703 c4_handle_rx(card); in c4_handle_interrupt()
704 card->dma->recvlen = 0; in c4_handle_interrupt()
705 c4outmeml(card->mbase + MBOX_UP_LEN, card->dma->recvbuf.size); in c4_handle_interrupt()
706 c4outmeml(card->mbase + DOORBELL, DBELL_UP_ARM); in c4_handle_interrupt()
710 card->csr &= ~DBELL_DOWN_ARM; in c4_handle_interrupt()
711 c4_dispatch_tx(card); in c4_handle_interrupt()
712 } else if (card->csr & DBELL_DOWN_HOST) { in c4_handle_interrupt()
713 if (c4inmeml(card->mbase + MBOX_DOWN_LEN) == 0) { in c4_handle_interrupt()
714 card->csr &= ~DBELL_DOWN_ARM; in c4_handle_interrupt()
715 c4_dispatch_tx(card); in c4_handle_interrupt()
718 spin_unlock_irqrestore(&card->lock, flags); in c4_handle_interrupt()
724 avmcard *card = devptr; in c4_interrupt() local
726 return c4_handle_interrupt(card); in c4_interrupt()
731 static void c4_send_init(avmcard *card) in c4_send_init() argument
740 card->name); in c4_send_init()
749 _put_word(&p, card->cardnr - 1); in c4_send_init()
752 skb_queue_tail(&card->dma->send_queue, skb); in c4_send_init()
753 spin_lock_irqsave(&card->lock, flags); in c4_send_init()
754 c4_dispatch_tx(card); in c4_send_init()
755 spin_unlock_irqrestore(&card->lock, flags); in c4_send_init()
758 static int queue_sendconfigword(avmcard *card, u32 val) in queue_sendconfigword() argument
767 card->name); in queue_sendconfigword()
777 skb_queue_tail(&card->dma->send_queue, skb); in queue_sendconfigword()
778 spin_lock_irqsave(&card->lock, flags); in queue_sendconfigword()
779 c4_dispatch_tx(card); in queue_sendconfigword()
780 spin_unlock_irqrestore(&card->lock, flags); in queue_sendconfigword()
784 static int queue_sendconfig(avmcard *card, char cval[4]) in queue_sendconfig() argument
793 card->name); in queue_sendconfig()
806 skb_queue_tail(&card->dma->send_queue, skb); in queue_sendconfig()
808 spin_lock_irqsave(&card->lock, flags); in queue_sendconfig()
809 c4_dispatch_tx(card); in queue_sendconfig()
810 spin_unlock_irqrestore(&card->lock, flags); in queue_sendconfig()
814 static int c4_send_config(avmcard *card, capiloaddatapart *config) in c4_send_config() argument
821 if ((retval = queue_sendconfigword(card, 1)) != 0) in c4_send_config()
823 if ((retval = queue_sendconfigword(card, config->len)) != 0) in c4_send_config()
835 if ((retval = queue_sendconfig(card, val)) != 0) in c4_send_config()
848 if ((retval = queue_sendconfig(card, val)) != 0) in c4_send_config()
858 avmcard *card = cinfo->card; in c4_load_firmware() local
861 if ((retval = c4_load_t4file(card, &data->firmware))) { in c4_load_firmware()
863 card->name); in c4_load_firmware()
864 c4_reset(card); in c4_load_firmware()
868 card->csr = 0; in c4_load_firmware()
869 c4outmeml(card->mbase + MBOX_UP_LEN, 0); in c4_load_firmware()
870 c4outmeml(card->mbase + MBOX_DOWN_LEN, 0); in c4_load_firmware()
871 c4outmeml(card->mbase + DOORBELL, DBELL_INIT); in c4_load_firmware()
873 c4outmeml(card->mbase + DOORBELL, in c4_load_firmware()
876 c4outmeml(card->mbase + PCI_OUT_INT_MASK, 0x08); in c4_load_firmware()
878 card->dma->recvlen = 0; in c4_load_firmware()
879 c4outmeml(card->mbase + MBOX_UP_ADDR, card->dma->recvbuf.dmaaddr); in c4_load_firmware()
880 c4outmeml(card->mbase + MBOX_UP_LEN, card->dma->recvbuf.size); in c4_load_firmware()
881 c4outmeml(card->mbase + DOORBELL, DBELL_UP_ARM); in c4_load_firmware()
884 retval = c4_send_config(card, &data->configuration); in c4_load_firmware()
887 card->name); in c4_load_firmware()
888 c4_reset(card); in c4_load_firmware()
893 c4_send_init(card); in c4_load_firmware()
901 avmcard *card = ((avmctrl_info *)(ctrl->driverdata))->card; in c4_reset_ctr() local
906 spin_lock_irqsave(&card->lock, flags); in c4_reset_ctr()
908 c4_reset(card); in c4_reset_ctr()
910 spin_unlock_irqrestore(&card->lock, flags); in c4_reset_ctr()
912 for (i = 0; i < card->nr_controllers; i++) { in c4_reset_ctr()
913 cinfo = &card->ctrlinfo[i]; in c4_reset_ctr()
917 card->nlogcontr = 0; in c4_reset_ctr()
922 avmcard *card = pci_get_drvdata(pdev); in c4_remove() local
926 if (!card) in c4_remove()
929 c4_reset(card); in c4_remove()
931 for (i = 0; i < card->nr_controllers; i++) { in c4_remove()
932 cinfo = &card->ctrlinfo[i]; in c4_remove()
936 free_irq(card->irq, card); in c4_remove()
937 iounmap(card->mbase); in c4_remove()
938 release_region(card->port, AVMB1_PORTLEN); in c4_remove()
939 avmcard_dma_free(card->dma); in c4_remove()
941 b1_free_card(card); in c4_remove()
952 avmcard *card = cinfo->card; in c4_register_appl() local
959 if (ctrl->cnr == card->cardnr) { in c4_register_appl()
968 card->name); in c4_register_appl()
982 skb_queue_tail(&card->dma->send_queue, skb); in c4_register_appl()
984 spin_lock_irqsave(&card->lock, flags); in c4_register_appl()
985 c4_dispatch_tx(card); in c4_register_appl()
986 spin_unlock_irqrestore(&card->lock, flags); in c4_register_appl()
995 avmcard *card = cinfo->card; in c4_release_appl() local
1000 spin_lock_irqsave(&card->lock, flags); in c4_release_appl()
1002 spin_unlock_irqrestore(&card->lock, flags); in c4_release_appl()
1004 if (ctrl->cnr == card->cardnr) { in c4_release_appl()
1008 card->name); in c4_release_appl()
1018 skb_queue_tail(&card->dma->send_queue, skb); in c4_release_appl()
1019 spin_lock_irqsave(&card->lock, flags); in c4_release_appl()
1020 c4_dispatch_tx(card); in c4_release_appl()
1021 spin_unlock_irqrestore(&card->lock, flags); in c4_release_appl()
1031 avmcard *card = cinfo->card; in c4_send_message() local
1035 spin_lock_irqsave(&card->lock, flags); in c4_send_message()
1043 skb_queue_tail(&card->dma->send_queue, skb); in c4_send_message()
1044 c4_dispatch_tx(card); in c4_send_message()
1046 spin_unlock_irqrestore(&card->lock, flags); in c4_send_message()
1061 cinfo->card ? cinfo->card->port : 0x0, in c4_procinfo()
1062 cinfo->card ? cinfo->card->irq : 0, in c4_procinfo()
1063 cinfo->card ? cinfo->card->membase : 0 in c4_procinfo()
1072 avmcard *card = cinfo->card; in c4_proc_show() local
1076 seq_printf(m, "%-16s %s\n", "name", card->name); in c4_proc_show()
1077 seq_printf(m, "%-16s 0x%x\n", "io", card->port); in c4_proc_show()
1078 seq_printf(m, "%-16s %d\n", "irq", card->irq); in c4_proc_show()
1079 seq_printf(m, "%-16s 0x%lx\n", "membase", card->membase); in c4_proc_show()
1080 switch (card->cardtype) { in c4_proc_show()
1100 if (card->cardtype != avm_m1) { in c4_proc_show()
1114 if (card->cardtype != avm_m1) { in c4_proc_show()
1148 avmcard *card; in c4_add_card() local
1153 card = b1_alloc_card(nr_controllers); in c4_add_card()
1154 if (!card) { in c4_add_card()
1159 card->dma = avmcard_dma_alloc("c4", dev, 2048 + 128, 2048 + 128); in c4_add_card()
1160 if (!card->dma) { in c4_add_card()
1166 sprintf(card->name, "c%d-%x", nr_controllers, p->port); in c4_add_card()
1167 card->port = p->port; in c4_add_card()
1168 card->irq = p->irq; in c4_add_card()
1169 card->membase = p->membase; in c4_add_card()
1170 card->cardtype = (nr_controllers == 4) ? avm_c4 : avm_c2; in c4_add_card()
1172 if (!request_region(card->port, AVMB1_PORTLEN, card->name)) { in c4_add_card()
1174 card->port, card->port + AVMB1_PORTLEN); in c4_add_card()
1179 card->mbase = ioremap(card->membase, 128); in c4_add_card()
1180 if (card->mbase == NULL) { in c4_add_card()
1182 card->membase); in c4_add_card()
1187 retval = c4_detect(card); in c4_add_card()
1190 card->port, retval); in c4_add_card()
1194 c4_reset(card); in c4_add_card()
1196 retval = request_irq(card->irq, c4_interrupt, IRQF_SHARED, card->name, card); in c4_add_card()
1198 printk(KERN_ERR "c4: unable to get IRQ %d.\n", card->irq); in c4_add_card()
1204 cinfo = &card->ctrlinfo[i]; in c4_add_card()
1215 strcpy(cinfo->capi_ctrl.name, card->name); in c4_add_card()
1221 cinfo = &card->ctrlinfo[i]; in c4_add_card()
1227 card->cardnr = cinfo->capi_ctrl.cnr; in c4_add_card()
1231 nr_controllers, card->port, card->irq, in c4_add_card()
1232 card->membase); in c4_add_card()
1233 pci_set_drvdata(dev, card); in c4_add_card()
1237 free_irq(card->irq, card); in c4_add_card()
1239 iounmap(card->mbase); in c4_add_card()
1241 release_region(card->port, AVMB1_PORTLEN); in c4_add_card()
1243 avmcard_dma_free(card->dma); in c4_add_card()
1245 b1_free_card(card); in c4_add_card()