Lines Matching refs:brd
349 #define MOXA_IS_320(brd) ((brd)->boardType == MOXA_BOARD_C320_PCI) argument
569 static int moxa_check_fw_model(struct moxa_board_conf *brd, u8 model) in moxa_check_fw_model() argument
571 switch (brd->boardType) { in moxa_check_fw_model()
600 static int moxa_load_bios(struct moxa_board_conf *brd, const u8 *buf, in moxa_load_bios() argument
603 void __iomem *baseAddr = brd->basemem; in moxa_load_bios()
614 switch (brd->boardType) { in moxa_load_bios()
644 static int moxa_load_320b(struct moxa_board_conf *brd, const u8 *ptr, in moxa_load_320b() argument
647 void __iomem *baseAddr = brd->basemem; in moxa_load_320b()
663 static int moxa_real_load_code(struct moxa_board_conf *brd, const void *ptr, in moxa_real_load_code() argument
666 void __iomem *baseAddr = brd->basemem; in moxa_real_load_code()
673 keycode = (brd->boardType == MOXA_BOARD_CP204J) ? CP204J_KeyCode : in moxa_real_load_code()
676 switch (brd->boardType) { in moxa_real_load_code()
741 if (MOXA_IS_320(brd)) { in moxa_real_load_code()
756 if (MOXA_IS_320(brd)) { in moxa_real_load_code()
760 brd->numPorts = j * 8; in moxa_real_load_code()
771 brd->intNdx = baseAddr + IRQindex; in moxa_real_load_code()
772 brd->intPend = baseAddr + IRQpending; in moxa_real_load_code()
773 brd->intTable = baseAddr + IRQtable; in moxa_real_load_code()
778 static int moxa_load_code(struct moxa_board_conf *brd, const void *ptr, in moxa_load_code() argument
781 void __iomem *ofsAddr, *baseAddr = brd->basemem; in moxa_load_code()
790 retval = moxa_real_load_code(brd, ptr, len); /* may change numPorts */ in moxa_load_code()
794 switch (brd->boardType) { in moxa_load_code()
797 port = brd->ports; in moxa_load_code()
798 for (i = 0; i < brd->numPorts; i++, port++) { in moxa_load_code()
799 port->board = brd; in moxa_load_code()
815 port = brd->ports; in moxa_load_code()
816 for (i = 0; i < brd->numPorts; i++, port++) { in moxa_load_code()
817 port->board = brd; in moxa_load_code()
822 switch (brd->numPorts) { in moxa_load_code()
865 static int moxa_load_fw(struct moxa_board_conf *brd, const struct firmware *fw) in moxa_load_fw() argument
896 if (moxa_check_fw_model(brd, hdr->model)) { in moxa_load_fw()
927 ret = moxa_load_bios(brd, ptr, lens[lenp]); in moxa_load_fw()
936 ret = moxa_load_320b(brd, ptr, lens[lenp]); in moxa_load_fw()
944 ret = moxa_load_code(brd, ptr, lens[lenp]); in moxa_load_fw()
954 static int moxa_init_board(struct moxa_board_conf *brd, struct device *dev) in moxa_init_board() argument
962 brd->ports = kcalloc(MAX_PORTS_PER_BOARD, sizeof(*brd->ports), in moxa_init_board()
964 if (brd->ports == NULL) { in moxa_init_board()
970 for (i = 0, p = brd->ports; i < MAX_PORTS_PER_BOARD; i++, p++) { in moxa_init_board()
977 switch (brd->boardType) { in moxa_init_board()
998 ret = moxa_load_fw(brd, fw); in moxa_init_board()
1006 brd->ready = 1; in moxa_init_board()
1011 first_idx = (brd - moxa_boards) * MAX_PORTS_PER_BOARD; in moxa_init_board()
1012 for (i = 0; i < brd->numPorts; i++) in moxa_init_board()
1013 tty_port_register_device(&brd->ports[i].port, moxaDriver, in moxa_init_board()
1019 tty_port_destroy(&brd->ports[i].port); in moxa_init_board()
1020 kfree(brd->ports); in moxa_init_board()
1025 static void moxa_board_deinit(struct moxa_board_conf *brd) in moxa_board_deinit() argument
1031 brd->ready = 0; in moxa_board_deinit()
1035 for (a = 0; a < brd->numPorts; a++) in moxa_board_deinit()
1036 if (tty_port_initialized(&brd->ports[a].port)) in moxa_board_deinit()
1037 tty_port_tty_hangup(&brd->ports[a].port, false); in moxa_board_deinit()
1040 tty_port_destroy(&brd->ports[a].port); in moxa_board_deinit()
1044 for (a = 0; a < brd->numPorts; a++) in moxa_board_deinit()
1045 if (tty_port_initialized(&brd->ports[a].port)) in moxa_board_deinit()
1054 first_idx = (brd - moxa_boards) * MAX_PORTS_PER_BOARD; in moxa_board_deinit()
1055 for (a = 0; a < brd->numPorts; a++) in moxa_board_deinit()
1058 iounmap(brd->basemem); in moxa_board_deinit()
1059 brd->basemem = NULL; in moxa_board_deinit()
1060 kfree(brd->ports); in moxa_board_deinit()
1138 struct moxa_board_conf *brd = pci_get_drvdata(pdev); in moxa_pci_remove() local
1140 moxa_board_deinit(brd); in moxa_pci_remove()
1226 struct moxa_board_conf *brd; in moxa_open() local
1233 brd = &moxa_boards[port / MAX_PORTS_PER_BOARD]; in moxa_open()
1234 if (!brd->ready) { in moxa_open()
1239 if (port % MAX_PORTS_PER_BOARD >= brd->numPorts) { in moxa_open()
1244 ch = &brd->ports[port % MAX_PORTS_PER_BOARD]; in moxa_open()
1493 struct moxa_board_conf *brd; in moxa_poll() local
1499 brd = &moxa_boards[card]; in moxa_poll()
1500 if (!brd->ready) in moxa_poll()
1506 if (readb(brd->intPend) == 0xff) in moxa_poll()
1507 ip = brd->intTable + readb(brd->intNdx); in moxa_poll()
1509 for (port = 0; port < brd->numPorts; port++) in moxa_poll()
1510 moxa_poll_port(&brd->ports[port], !!ip, ip + port); in moxa_poll()
1513 writeb(0, brd->intPend); /* ACK */ in moxa_poll()
1516 struct moxa_port *p = brd->ports; in moxa_poll()
1517 for (port = 0; port < brd->numPorts; port++, p++) in moxa_poll()