Lines Matching refs:cinfo

440 static void cyy_chip_rx(struct cyclades_card *cinfo, int chip,  in cyy_chip_rx()  argument
445 int len, index = cinfo->bus_index; in cyy_chip_rx()
454 info = &cinfo->ports[channel + chip * 4]; in cyy_chip_rx()
568 static void cyy_chip_tx(struct cyclades_card *cinfo, unsigned int chip, in cyy_chip_tx() argument
573 int char_count, index = cinfo->bus_index; in cyy_chip_tx()
589 info = &cinfo->ports[channel + chip * 4]; in cyy_chip_tx()
681 static void cyy_chip_modem(struct cyclades_card *cinfo, int chip, in cyy_chip_modem() argument
686 int index = cinfo->bus_index; in cyy_chip_modem()
692 info = &cinfo->ports[channel + chip * 4]; in cyy_chip_modem()
761 struct cyclades_card *cinfo = dev_id; in cyy_interrupt() local
766 if (unlikely(cinfo == NULL)) { in cyy_interrupt()
774 card_base_addr = cinfo->base_addr; in cyy_interrupt()
775 index = cinfo->bus_index; in cyy_interrupt()
788 for (chip = 0; chip < cinfo->num_chips; chip++) { in cyy_interrupt()
789 base_addr = cinfo->base_addr + in cyy_interrupt()
802 spin_lock(&cinfo->card_lock); in cyy_interrupt()
804 cyy_chip_rx(cinfo, chip, base_addr); in cyy_interrupt()
806 cyy_chip_tx(cinfo, chip, base_addr); in cyy_interrupt()
808 cyy_chip_modem(cinfo, chip, base_addr); in cyy_interrupt()
809 spin_unlock(&cinfo->card_lock); in cyy_interrupt()
815 spin_lock(&cinfo->card_lock); in cyy_interrupt()
818 spin_unlock(&cinfo->card_lock); in cyy_interrupt()
878 cyz_fetch_msg(struct cyclades_card *cinfo, in cyz_fetch_msg() argument
881 struct BOARD_CTRL __iomem *board_ctrl = cinfo->board_ctrl; in cyz_fetch_msg()
884 loc_doorbell = readl(&cinfo->ctl_addr.p9060->loc_doorbell); in cyz_fetch_msg()
889 cy_writel(&cinfo->ctl_addr.p9060->loc_doorbell, 0xffffffff); in cyz_fetch_msg()
896 cyz_issue_cmd(struct cyclades_card *cinfo, in cyz_issue_cmd() argument
899 struct BOARD_CTRL __iomem *board_ctrl = cinfo->board_ctrl; in cyz_issue_cmd()
903 if (!cyz_is_loaded(cinfo)) in cyz_issue_cmd()
907 pci_doorbell = &cinfo->ctl_addr.p9060->pci_doorbell; in cyz_issue_cmd()
923 struct cyclades_card *cinfo = info->card; in cyz_handle_rx() local
967 memcpy_fromio(buf, cinfo->base_addr + in cyz_handle_rx()
979 data = readb(cinfo->base_addr + rx_bufaddr + in cyz_handle_rx()
1012 struct cyclades_card *cinfo = info->card; in cyz_handle_tx() local
1043 cy_writeb(cinfo->base_addr + tx_bufaddr + tx_put, data); in cyz_handle_tx()
1056 memcpy_toio((char *)(cinfo->base_addr + tx_bufaddr + tx_put), in cyz_handle_tx()
1074 cy_writeb(cinfo->base_addr + tx_bufaddr + tx_put, data); in cyz_handle_tx()
1087 static void cyz_handle_cmd(struct cyclades_card *cinfo) in cyz_handle_cmd() argument
1089 struct BOARD_CTRL __iomem *board_ctrl = cinfo->board_ctrl; in cyz_handle_cmd()
1098 while (cyz_fetch_msg(cinfo, &channel, &cmd, &param) == 1) { in cyz_handle_cmd()
1101 info = &cinfo->ports[channel]; in cyz_handle_cmd()
1186 struct cyclades_card *cinfo = dev_id; in cyz_interrupt() local
1188 if (unlikely(!cyz_is_loaded(cinfo))) { in cyz_interrupt()
1197 cyz_handle_cmd(cinfo); in cyz_interrupt()
1223 struct cyclades_card *cinfo; in cyz_poll() local
1229 cinfo = &cy_card[card]; in cyz_poll()
1231 if (!cy_is_Z(cinfo)) in cyz_poll()
1233 if (!cyz_is_loaded(cinfo)) in cyz_poll()
1237 if (!cinfo->intr_enabled) { in cyz_poll()
1238 cinfo->intr_enabled = 1; in cyz_poll()
1242 cyz_handle_cmd(cinfo); in cyz_poll()
1244 for (port = 0; port < cinfo->nports; port++) { in cyz_poll()
1245 info = &cinfo->ports[port]; in cyz_poll()
1517 struct cyclades_card *cinfo = info->card; in cy_open() local
1518 struct FIRM_ID __iomem *firm_id = cinfo->base_addr + ID_ADDRESS; in cy_open()
1520 if (!cyz_is_loaded(cinfo)) { in cy_open()
1521 if (cinfo->hw_ver == ZE_V1 && cyz_fpga_loaded(cinfo) && in cy_open()
1539 if (!cinfo->intr_enabled) { in cy_open()
1543 intr = readw(&cinfo->ctl_addr.p9060-> in cy_open()
1545 cy_writew(&cinfo->ctl_addr.p9060-> in cy_open()
1548 retval = cyz_issue_cmd(cinfo, 0, in cy_open()
1554 cinfo->intr_enabled = 1; in cy_open()
1559 if (info->line > (cinfo->first_line + cinfo->nports - 1)) in cy_open()
2287 struct cyclades_card *cinfo = info->card; in cy_get_serial_info() local
2292 cinfo->first_line, in cy_get_serial_info()
2293 .irq = cinfo->irq, in cy_get_serial_info()
2925 struct cyclades_card *cinfo; in cy_stop() local
2937 cinfo = info->card; in cy_stop()
2938 channel = info->line - cinfo->first_line; in cy_stop()
2939 if (!cy_is_Z(cinfo)) { in cy_stop()
2940 spin_lock_irqsave(&cinfo->card_lock, flags); in cy_stop()
2943 spin_unlock_irqrestore(&cinfo->card_lock, flags); in cy_stop()
2949 struct cyclades_card *cinfo; in cy_start() local
2961 cinfo = info->card; in cy_start()
2962 channel = info->line - cinfo->first_line; in cy_start()
2963 if (!cy_is_Z(cinfo)) { in cy_start()
2964 spin_lock_irqsave(&cinfo->card_lock, flags); in cy_start()
2967 spin_unlock_irqrestore(&cinfo->card_lock, flags); in cy_start()
2994 struct cyclades_card *cinfo = info->card; in cyy_carrier_raised() local
2996 int channel = info->line - cinfo->first_line; in cyy_carrier_raised()
2999 spin_lock_irqsave(&cinfo->card_lock, flags); in cyy_carrier_raised()
3002 spin_unlock_irqrestore(&cinfo->card_lock, flags); in cyy_carrier_raised()
3011 struct cyclades_card *cinfo = info->card; in cyy_dtr_rts() local
3014 spin_lock_irqsave(&cinfo->card_lock, flags); in cyy_dtr_rts()
3017 spin_unlock_irqrestore(&cinfo->card_lock, flags); in cyy_dtr_rts()
3032 struct cyclades_card *cinfo = info->card; in cyz_dtr_rts() local
3034 int ret, channel = info->line - cinfo->first_line; in cyz_dtr_rts()
3043 ret = cyz_issue_cmd(cinfo, channel, C_CM_IOCTLM, 0L); in cyz_dtr_rts()
3072 static int cy_init_card(struct cyclades_card *cinfo) in cy_init_card() argument
3077 spin_lock_init(&cinfo->card_lock); in cy_init_card()
3078 cinfo->intr_enabled = 0; in cy_init_card()
3080 cinfo->ports = kcalloc(cinfo->nports, sizeof(*cinfo->ports), in cy_init_card()
3082 if (cinfo->ports == NULL) { in cy_init_card()
3087 for (channel = 0, port = cinfo->first_line; channel < cinfo->nports; in cy_init_card()
3089 info = &cinfo->ports[channel]; in cy_init_card()
3092 info->card = cinfo; in cy_init_card()
3100 if (cy_is_Z(cinfo)) { in cy_init_card()
3101 struct FIRM_ID *firm_id = cinfo->base_addr + ID_ADDRESS; in cy_init_card()
3107 zfw_ctrl = cinfo->base_addr + in cy_init_card()
3112 if (cinfo->hw_ver == ZO_V1) in cy_init_card()
3122 int index = cinfo->bus_index; in cy_init_card()
3132 info->u.cyy.base_addr = cinfo->base_addr + in cy_init_card()
3157 if (cy_is_Z(cinfo) && !timer_pending(&cyz_timerlist)) { in cy_init_card()
3906 struct cyclades_card *cinfo = pci_get_drvdata(pdev); in cy_pci_remove() local
3910 if (!cy_is_Z(cinfo) && (readb(cinfo->base_addr + CyPLX_VER) & 0x0f) == in cy_pci_remove()
3912 cy_writeb(cinfo->ctl_addr.p9050 + 0x4c, 0); in cy_pci_remove()
3915 if (!cy_is_Z(cinfo)) in cy_pci_remove()
3917 cy_writew(&cinfo->ctl_addr.p9060->intr_ctrl_stat, in cy_pci_remove()
3918 readw(&cinfo->ctl_addr.p9060->intr_ctrl_stat) & in cy_pci_remove()
3921 iounmap(cinfo->base_addr); in cy_pci_remove()
3922 if (cinfo->ctl_addr.p9050) in cy_pci_remove()
3923 iounmap(cinfo->ctl_addr.p9050); in cy_pci_remove()
3924 if (cinfo->irq in cy_pci_remove()
3926 && !cy_is_Z(cinfo) in cy_pci_remove()
3929 free_irq(cinfo->irq, cinfo); in cy_pci_remove()
3932 cinfo->base_addr = NULL; in cy_pci_remove()
3933 for (channel = 0, i = cinfo->first_line; i < cinfo->first_line + in cy_pci_remove()
3934 cinfo->nports; i++, channel++) { in cy_pci_remove()
3936 tty_port_destroy(&cinfo->ports[channel].port); in cy_pci_remove()
3938 cinfo->nports = 0; in cy_pci_remove()
3939 kfree(cinfo->ports); in cy_pci_remove()