Lines Matching refs:ipoctal

47 struct ipoctal {  struct
56 static inline struct ipoctal *chan_to_ipoctal(struct ipoctal_channel *chan, in chan_to_ipoctal() argument
59 return container_of(chan, struct ipoctal, channel[index]); in chan_to_ipoctal()
90 struct ipoctal *ipoctal = chan_to_ipoctal(channel, tty->index); in ipoctal_install() local
93 if (!ipack_get_carrier(ipoctal->dev)) in ipoctal_install()
105 ipack_put_carrier(ipoctal->dev); in ipoctal_install()
258 struct ipoctal *ipoctal = (struct ipoctal *) arg; in ipoctal_irq_handler() local
261 readw(ipoctal->int_space + ACK_INT_REQ0); in ipoctal_irq_handler()
262 readw(ipoctal->int_space + ACK_INT_REQ1); in ipoctal_irq_handler()
266 ipoctal_irq_channel(&ipoctal->channel[i]); in ipoctal_irq_handler()
276 static int ipoctal_inst_slot(struct ipoctal *ipoctal, unsigned int bus_nr, in ipoctal_inst_slot() argument
288 ipoctal->board_id = ipoctal->dev->id_device; in ipoctal_inst_slot()
290 region = &ipoctal->dev->region[IPACK_IO_SPACE]; in ipoctal_inst_slot()
291 addr = devm_ioremap(&ipoctal->dev->dev, in ipoctal_inst_slot()
294 dev_err(&ipoctal->dev->dev, in ipoctal_inst_slot()
305 region = &ipoctal->dev->region[IPACK_INT_SPACE]; in ipoctal_inst_slot()
306 ipoctal->int_space = in ipoctal_inst_slot()
307 devm_ioremap(&ipoctal->dev->dev, in ipoctal_inst_slot()
309 if (!ipoctal->int_space) { in ipoctal_inst_slot()
310 dev_err(&ipoctal->dev->dev, in ipoctal_inst_slot()
316 region = &ipoctal->dev->region[IPACK_MEM8_SPACE]; in ipoctal_inst_slot()
317 ipoctal->mem8_space = in ipoctal_inst_slot()
318 devm_ioremap(&ipoctal->dev->dev, in ipoctal_inst_slot()
320 if (!ipoctal->mem8_space) { in ipoctal_inst_slot()
321 dev_err(&ipoctal->dev->dev, in ipoctal_inst_slot()
330 struct ipoctal_channel *channel = &ipoctal->channel[i]; in ipoctal_inst_slot()
333 channel->board_id = ipoctal->board_id; in ipoctal_inst_slot()
359 iowrite8(1, ipoctal->mem8_space + 1); in ipoctal_inst_slot()
391 dev_err(&ipoctal->dev->dev, "Can't register tty driver.\n"); in ipoctal_inst_slot()
396 ipoctal->tty_drv = tty; in ipoctal_inst_slot()
401 channel = &ipoctal->channel[i]; in ipoctal_inst_slot()
416 dev_err(&ipoctal->dev->dev, "Failed to register tty device.\n"); in ipoctal_inst_slot()
429 ipoctal->dev->bus->ops->request_irq(ipoctal->dev, in ipoctal_inst_slot()
430 ipoctal_irq_handler, ipoctal); in ipoctal_inst_slot()
672 struct ipoctal *ipoctal = chan_to_ipoctal(channel, tty->index); in ipoctal_cleanup() local
675 ipack_put_carrier(ipoctal->dev); in ipoctal_cleanup()
696 struct ipoctal *ipoctal; in ipoctal_probe() local
698 ipoctal = kzalloc(sizeof(struct ipoctal), GFP_KERNEL); in ipoctal_probe()
699 if (ipoctal == NULL) in ipoctal_probe()
702 ipoctal->dev = dev; in ipoctal_probe()
703 res = ipoctal_inst_slot(ipoctal, dev->bus->bus_nr, dev->slot); in ipoctal_probe()
707 dev_set_drvdata(&dev->dev, ipoctal); in ipoctal_probe()
711 kfree(ipoctal); in ipoctal_probe()
715 static void __ipoctal_remove(struct ipoctal *ipoctal) in __ipoctal_remove() argument
719 ipoctal->dev->bus->ops->free_irq(ipoctal->dev); in __ipoctal_remove()
722 struct ipoctal_channel *channel = &ipoctal->channel[i]; in __ipoctal_remove()
727 tty_unregister_device(ipoctal->tty_drv, i); in __ipoctal_remove()
732 tty_unregister_driver(ipoctal->tty_drv); in __ipoctal_remove()
733 kfree(ipoctal->tty_drv->name); in __ipoctal_remove()
734 put_tty_driver(ipoctal->tty_drv); in __ipoctal_remove()
735 kfree(ipoctal); in __ipoctal_remove()