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()
2296 struct cyclades_card *cinfo = info->card; in cy_get_serial_info() local
2301 cinfo->first_line, in cy_get_serial_info()
2302 .irq = cinfo->irq, in cy_get_serial_info()
2938 struct cyclades_card *cinfo; in cy_stop() local
2950 cinfo = info->card; in cy_stop()
2951 channel = info->line - cinfo->first_line; in cy_stop()
2952 if (!cy_is_Z(cinfo)) { in cy_stop()
2953 spin_lock_irqsave(&cinfo->card_lock, flags); in cy_stop()
2956 spin_unlock_irqrestore(&cinfo->card_lock, flags); in cy_stop()
2962 struct cyclades_card *cinfo; in cy_start() local
2974 cinfo = info->card; in cy_start()
2975 channel = info->line - cinfo->first_line; in cy_start()
2976 if (!cy_is_Z(cinfo)) { in cy_start()
2977 spin_lock_irqsave(&cinfo->card_lock, flags); in cy_start()
2980 spin_unlock_irqrestore(&cinfo->card_lock, flags); in cy_start()
3007 struct cyclades_card *cinfo = info->card; in cyy_carrier_raised() local
3009 int channel = info->line - cinfo->first_line; in cyy_carrier_raised()
3012 spin_lock_irqsave(&cinfo->card_lock, flags); in cyy_carrier_raised()
3015 spin_unlock_irqrestore(&cinfo->card_lock, flags); in cyy_carrier_raised()
3024 struct cyclades_card *cinfo = info->card; in cyy_dtr_rts() local
3027 spin_lock_irqsave(&cinfo->card_lock, flags); in cyy_dtr_rts()
3030 spin_unlock_irqrestore(&cinfo->card_lock, flags); in cyy_dtr_rts()
3045 struct cyclades_card *cinfo = info->card; in cyz_dtr_rts() local
3047 int ret, channel = info->line - cinfo->first_line; in cyz_dtr_rts()
3056 ret = cyz_issue_cmd(cinfo, channel, C_CM_IOCTLM, 0L); in cyz_dtr_rts()
3085 static int cy_init_card(struct cyclades_card *cinfo) in cy_init_card() argument
3090 spin_lock_init(&cinfo->card_lock); in cy_init_card()
3091 cinfo->intr_enabled = 0; in cy_init_card()
3093 cinfo->ports = kcalloc(cinfo->nports, sizeof(*cinfo->ports), in cy_init_card()
3095 if (cinfo->ports == NULL) { in cy_init_card()
3100 for (channel = 0, port = cinfo->first_line; channel < cinfo->nports; in cy_init_card()
3102 info = &cinfo->ports[channel]; in cy_init_card()
3105 info->card = cinfo; in cy_init_card()
3113 if (cy_is_Z(cinfo)) { in cy_init_card()
3114 struct FIRM_ID *firm_id = cinfo->base_addr + ID_ADDRESS; in cy_init_card()
3120 zfw_ctrl = cinfo->base_addr + in cy_init_card()
3125 if (cinfo->hw_ver == ZO_V1) in cy_init_card()
3135 int index = cinfo->bus_index; in cy_init_card()
3145 info->u.cyy.base_addr = cinfo->base_addr + in cy_init_card()
3170 if (cy_is_Z(cinfo) && !timer_pending(&cyz_timerlist)) { in cy_init_card()
3919 struct cyclades_card *cinfo = pci_get_drvdata(pdev); in cy_pci_remove() local
3923 if (!cy_is_Z(cinfo) && (readb(cinfo->base_addr + CyPLX_VER) & 0x0f) == in cy_pci_remove()
3925 cy_writeb(cinfo->ctl_addr.p9050 + 0x4c, 0); in cy_pci_remove()
3928 if (!cy_is_Z(cinfo)) in cy_pci_remove()
3930 cy_writew(&cinfo->ctl_addr.p9060->intr_ctrl_stat, in cy_pci_remove()
3931 readw(&cinfo->ctl_addr.p9060->intr_ctrl_stat) & in cy_pci_remove()
3934 iounmap(cinfo->base_addr); in cy_pci_remove()
3935 if (cinfo->ctl_addr.p9050) in cy_pci_remove()
3936 iounmap(cinfo->ctl_addr.p9050); in cy_pci_remove()
3937 if (cinfo->irq in cy_pci_remove()
3939 && !cy_is_Z(cinfo) in cy_pci_remove()
3942 free_irq(cinfo->irq, cinfo); in cy_pci_remove()
3945 cinfo->base_addr = NULL; in cy_pci_remove()
3946 for (channel = 0, i = cinfo->first_line; i < cinfo->first_line + in cy_pci_remove()
3947 cinfo->nports; i++, channel++) { in cy_pci_remove()
3949 tty_port_destroy(&cinfo->ports[channel].port); in cy_pci_remove()
3951 cinfo->nports = 0; in cy_pci_remove()
3952 kfree(cinfo->ports); in cy_pci_remove()