Lines Matching refs:ch

169 static void pcxxparam(struct tty_struct *, struct channel *ch);
177 static void digi_send_break(struct channel *ch, int msec);
179 static void setup_empty_event(struct tty_struct *tty, struct channel *ch);
182 static inline void globalwinon(struct channel *ch);
183 static inline void rxwinon(struct channel *ch);
184 static inline void txwinon(struct channel *ch);
185 static inline void memoff(struct channel *ch);
186 static inline void assertgwinon(struct channel *ch);
187 static inline void assertmemoff(struct channel *ch);
199 struct channel *ch; in cleanup_board_resources() local
203 ch = digi_channels + bd->first_minor; in cleanup_board_resources()
208 for(i = 0; i < bd->numports; i++, ch++) in cleanup_board_resources()
209 if (ch->tmp_buf) in cleanup_board_resources()
210 kfree(ch->tmp_buf); in cleanup_board_resources()
258 register struct channel *ch=(struct channel *)tty->driver_data; in chan() local
259 if (ch >= digi_channels && ch < digi_channels+nbdevs) { in chan()
260 if (ch->magic==PCXX_MAGIC) in chan()
261 return ch; in chan()
283 static inline void globalwinon(struct channel *ch) in globalwinon() argument
285 if(ch->board->type == PCXEVE) in globalwinon()
286 outb_p(FEPWIN, ch->board->port+1); in globalwinon()
288 outb_p(FEPMEM, ch->board->port); in globalwinon()
291 static inline void rxwinon(struct channel *ch) in rxwinon() argument
293 if(ch->rxwin == 0) in rxwinon()
294 outb_p(FEPMEM, ch->board->port); in rxwinon()
296 outb_p(ch->rxwin, ch->board->port+1); in rxwinon()
299 static inline void txwinon(struct channel *ch) in txwinon() argument
301 if(ch->txwin == 0) in txwinon()
302 outb_p(FEPMEM, ch->board->port); in txwinon()
304 outb_p(ch->txwin, ch->board->port+1); in txwinon()
307 static inline void memoff(struct channel *ch) in memoff() argument
309 outb_p(0, ch->board->port); in memoff()
310 if(ch->board->type == PCXEVE) in memoff()
311 outb_p(0, ch->board->port+1); in memoff()
314 static inline void assertgwinon(struct channel *ch) in assertgwinon() argument
316 if(ch->board->type != PCXEVE) in assertgwinon()
317 pcxxassert(inb(ch->board->port) & FEPMEM, "Global memory off"); in assertgwinon()
320 static inline void assertmemoff(struct channel *ch) in assertmemoff() argument
322 if(ch->board->type != PCXEVE) in assertmemoff()
323 pcxxassert(!(inb(ch->board->port) & FEPMEM), "Memory on"); in assertmemoff()
402 struct channel *ch; in pcxe_open() local
427 ch = digi_channels+line; in pcxe_open()
429 if(ch->brdchan == 0) { in pcxe_open()
440 if(ch->asyncflags & ASYNC_CLOSING) { in pcxe_open()
441 interruptible_sleep_on(&ch->close_wait); in pcxe_open()
442 if(ch->asyncflags & ASYNC_HUP_NOTIFY) in pcxe_open()
450 ch->count++; in pcxe_open()
451 tty->driver_data = ch; in pcxe_open()
452 ch->tty = tty; in pcxe_open()
454 if ((ch->asyncflags & ASYNC_INITIALIZED) == 0) { in pcxe_open()
457 globalwinon(ch); in pcxe_open()
458 ch->statusflags = 0; in pcxe_open()
459 bc=ch->brdchan; in pcxe_open()
460 ch->imodem = bc->mstat; in pcxe_open()
463 ch->tty = tty; in pcxe_open()
464 pcxxparam(tty,ch); in pcxe_open()
465 ch->imodem = bc->mstat; in pcxe_open()
467 ch->omodem = DTR|RTS; in pcxe_open()
468 fepcmd(ch, SETMODEM, DTR|RTS, 0, 10, 1); in pcxe_open()
469 memoff(ch); in pcxe_open()
470 ch->asyncflags |= ASYNC_INITIALIZED; in pcxe_open()
474 if(ch->asyncflags & ASYNC_CLOSING) { in pcxe_open()
475 interruptible_sleep_on(&ch->close_wait); in pcxe_open()
476 if(ch->asyncflags & ASYNC_HUP_NOTIFY) in pcxe_open()
486 if (ch->asyncflags & ASYNC_NORMAL_ACTIVE) in pcxe_open()
488 if (ch->asyncflags & ASYNC_CALLOUT_ACTIVE) { in pcxe_open()
489 if ((ch->asyncflags & ASYNC_SESSION_LOCKOUT) && in pcxe_open()
490 (ch->session != current->session)) in pcxe_open()
492 if((ch->asyncflags & ASYNC_PGRP_LOCKOUT) && in pcxe_open()
493 (ch->pgrp != current->pgrp)) in pcxe_open()
496 ch->asyncflags |= ASYNC_CALLOUT_ACTIVE; in pcxe_open()
500 if(ch->asyncflags & ASYNC_CALLOUT_ACTIVE) in pcxe_open()
510 ch->asyncflags |= ASYNC_NORMAL_ACTIVE; in pcxe_open()
511 if ((retval = pcxx_waitcarrier(tty, filp, ch)) != 0) in pcxe_open()
514 ch->asyncflags |= ASYNC_NORMAL_ACTIVE; in pcxe_open()
519 if((ch->count == 1) && (ch->asyncflags & ASYNC_SPLIT_TERMIOS)) { in pcxe_open()
521 *tty->termios = ch->normal_termios; in pcxe_open()
523 *tty->termios = ch->callout_termios; in pcxe_open()
524 globalwinon(ch); in pcxe_open()
525 pcxxparam(tty,ch); in pcxe_open()
526 memoff(ch); in pcxe_open()
529 ch->session = current->session; in pcxe_open()
530 ch->pgrp = current->pgrp; in pcxe_open()
645 struct channel *ch; in pcxe_hangup() local
647 if ((ch=chan(tty))!=NULL) { in pcxe_hangup()
652 shutdown(ch); in pcxe_hangup()
653 ch->event = 0; in pcxe_hangup()
654 ch->count = 0; in pcxe_hangup()
655 ch->tty = NULL; in pcxe_hangup()
656 ch->asyncflags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CALLOUT_ACTIVE); in pcxe_hangup()
657 wake_up_interruptible(&ch->open_wait); in pcxe_hangup()
666 struct channel *ch; in pcxe_write() local
673 if ((ch=chan(tty))==NULL) in pcxe_write()
676 bc = ch->brdchan; in pcxe_write()
677 size = ch->txbufsize; in pcxe_write()
681 down(&ch->tmp_buf_sem); in pcxe_write()
684 globalwinon(ch); in pcxe_write()
696 memoff(ch); in pcxe_write()
700 if (copy_from_user(ch->tmp_buf, buf, count)) in pcxe_write()
703 buf = ch->tmp_buf; in pcxe_write()
713 globalwinon(ch); in pcxe_write()
729 txwinon(ch); in pcxe_write()
732 memcpy(ch->txptr + head, buf, stlen); in pcxe_write()
742 ch->statusflags |= TXBUSY; in pcxe_write()
743 globalwinon(ch); in pcxe_write()
745 if ((ch->statusflags & LOWWAIT) == 0) { in pcxe_write()
746 ch->statusflags |= LOWWAIT; in pcxe_write()
749 memoff(ch); in pcxe_write()
753 up(&ch->tmp_buf_sem); in pcxe_write()
768 struct channel *ch; in pcxe_write_room() local
772 if ((ch=chan(tty))!=NULL) { in pcxe_write_room()
779 globalwinon(ch); in pcxe_write_room()
781 bc = ch->brdchan; in pcxe_write_room()
782 head = bc->tin & (ch->txbufsize - 1); in pcxe_write_room()
786 tail &= (ch->txbufsize - 1); in pcxe_write_room()
789 remain += ch->txbufsize; in pcxe_write_room()
791 if (remain && (ch->statusflags & LOWWAIT) == 0) { in pcxe_write_room()
792 ch->statusflags |= LOWWAIT; in pcxe_write_room()
795 memoff(ch); in pcxe_write_room()
809 struct channel *ch; in pcxe_chars_in_buffer() local
812 if ((ch=chan(tty))==NULL) in pcxe_chars_in_buffer()
817 globalwinon(ch); in pcxe_chars_in_buffer()
819 bc = ch->brdchan; in pcxe_chars_in_buffer()
822 ctail = ch->mailbox->cout; in pcxe_chars_in_buffer()
823 if(tail == head && ch->mailbox->cin == ctail && bc->tbusy == 0) in pcxe_chars_in_buffer()
826 head = bc->tin & (ch->txbufsize - 1); in pcxe_chars_in_buffer()
827 tail &= (ch->txbufsize - 1); in pcxe_chars_in_buffer()
829 remain += ch->txbufsize; in pcxe_chars_in_buffer()
831 chars = (int)(ch->txbufsize - remain); in pcxe_chars_in_buffer()
837 if(!(ch->statusflags & EMPTYWAIT)) in pcxe_chars_in_buffer()
838 setup_empty_event(tty,ch); in pcxe_chars_in_buffer()
841 memoff(ch); in pcxe_chars_in_buffer()
852 struct channel *ch; in pcxe_flush_buffer() local
855 if ((ch=chan(tty))==NULL) in pcxe_flush_buffer()
861 globalwinon(ch); in pcxe_flush_buffer()
862 bc = ch->brdchan; in pcxe_flush_buffer()
864 fepcmd(ch, STOUT, (unsigned) tail, 0, 0, 0); in pcxe_flush_buffer()
866 memoff(ch); in pcxe_flush_buffer()
874 struct channel * ch; in pcxe_flush_chars() local
876 if ((ch=chan(tty))!=NULL) { in pcxe_flush_chars()
881 if ((ch->statusflags & TXBUSY) && !(ch->statusflags & EMPTYWAIT)) in pcxe_flush_chars()
882 setup_empty_event(tty,ch); in pcxe_flush_chars()
1093 struct channel *ch; in pcxe_init() local
1511 ch = digi_channels+bd->first_minor; in pcxe_init()
1512 pcxxassert(ch < digi_channels+nbdevs, "ch out of range"); in pcxe_init()
1528 for(i=0; i < bd->numports; i++, ch++, bc++) { in pcxe_init()
1530 ch->brdchan = 0; in pcxe_init()
1533 ch->brdchan = bc; in pcxe_init()
1534 ch->mailbox = gd; in pcxe_init()
1535 ch->tqueue.routine = do_softint; in pcxe_init()
1536 ch->tqueue.data = ch; in pcxe_init()
1537 ch->board = &boards[crd]; in pcxe_init()
1539 ch->digiext.digi_flags = RTSPACE|CTSPACE; in pcxe_init()
1542 ch->dsr = CD; in pcxe_init()
1543 ch->dcd = DSR; in pcxe_init()
1544 ch->digiext.digi_flags |= DIGI_ALTPIN; in pcxe_init()
1546 ch->dcd = CD; in pcxe_init()
1547 ch->dsr = DSR; in pcxe_init()
1550 ch->magic = PCXX_MAGIC; in pcxe_init()
1551 ch->boardnum = crd; in pcxe_init()
1552 ch->channelnum = i; in pcxe_init()
1554 ch->dev = bd->first_minor + i; in pcxe_init()
1555 ch->tty = 0; in pcxe_init()
1558 fepcmd(ch, SETBUFFER, 32, 0, 0, 0); in pcxe_init()
1563 ch->txptr = memaddr+((bc->tseg-memory_seg) << 4); in pcxe_init()
1564 ch->rxptr = memaddr+((bc->rseg-memory_seg) << 4); in pcxe_init()
1565 ch->txwin = ch->rxwin = 0; in pcxe_init()
1567 ch->txptr = memaddr+(((bc->tseg-memory_seg) << 4) & 0x1fff); in pcxe_init()
1568 ch->txwin = FEPWIN | ((bc->tseg-memory_seg) >> 9); in pcxe_init()
1569 ch->rxptr = memaddr+(((bc->rseg-memory_seg) << 4) & 0x1fff); in pcxe_init()
1570 ch->rxwin = FEPWIN | ((bc->rseg-memory_seg) >>9 ); in pcxe_init()
1573 ch->txbufsize = bc->tmax + 1; in pcxe_init()
1574 ch->rxbufsize = bc->rmax + 1; in pcxe_init()
1575 ch->tmp_buf = kmalloc(ch->txbufsize,GFP_KERNEL); in pcxe_init()
1576 init_MUTEX(&ch->tmp_buf_sem); in pcxe_init()
1578 if (!ch->tmp_buf) { in pcxe_init()
1583 lowwater = ch->txbufsize >= 2000 ? 1024 : ch->txbufsize/2; in pcxe_init()
1584 fepcmd(ch, STXLWATER, lowwater, 0, 10, 0); in pcxe_init()
1585 fepcmd(ch, SRXLWATER, ch->rxbufsize/4, 0, 10, 0); in pcxe_init()
1586 fepcmd(ch, SRXHWATER, 3 * ch->rxbufsize/4, 0, 10, 0); in pcxe_init()
1591 ch->startc = bc->startc; in pcxe_init()
1592 ch->stopc = bc->stopc; in pcxe_init()
1593 ch->startca = bc->startca; in pcxe_init()
1594 ch->stopca = bc->stopca; in pcxe_init()
1596 ch->fepcflag = 0; in pcxe_init()
1597 ch->fepiflag = 0; in pcxe_init()
1598 ch->fepoflag = 0; in pcxe_init()
1599 ch->fepstartc = 0; in pcxe_init()
1600 ch->fepstopc = 0; in pcxe_init()
1601 ch->fepstartca = 0; in pcxe_init()
1602 ch->fepstopca = 0; in pcxe_init()
1604 ch->close_delay = 50; in pcxe_init()
1605 ch->count = 0; in pcxe_init()
1606 ch->blocked_open = 0; in pcxe_init()
1607 ch->callout_termios = pcxe_callout.init_termios; in pcxe_init()
1608 ch->normal_termios = pcxe_driver.init_termios; in pcxe_init()
1609 init_waitqueue_head(&ch->open_wait); in pcxe_init()
1610 init_waitqueue_head(&ch->close_wait); in pcxe_init()
1611 ch->asyncflags = 0; in pcxe_init()
1669 struct channel *ch; in pcxxpoll() local
1678 ch = digi_channels+bd->first_minor; in pcxxpoll()
1683 assertmemoff(ch); in pcxxpoll()
1685 globalwinon(ch); in pcxxpoll()
1686 head = ch->mailbox->ein; in pcxxpoll()
1687 tail = ch->mailbox->eout; in pcxxpoll()
1692 memoff(ch); in pcxxpoll()
1707 struct channel *ch; in doevent() local
1727 ch=chan0+channel; in doevent()
1729 if ((unsigned)channel >= bd->numports || !ch) { in doevent()
1734 ch = chan0; in doevent()
1735 bc = ch->brdchan; in doevent()
1738 if ((bc = ch->brdchan) == NULL) in doevent()
1742 receive_data(ch); in doevent()
1743 assertgwinon(ch); in doevent()
1747 ch->imodem = mstat; in doevent()
1748 if (ch->asyncflags & (ASYNC_NORMAL_ACTIVE|ASYNC_CALLOUT_ACTIVE)) { in doevent()
1749 if (ch->asyncflags & ASYNC_CHECK_CD) { in doevent()
1750 if (mstat & ch->dcd) { in doevent()
1751 wake_up_interruptible(&ch->open_wait); in doevent()
1753 pcxe_sched_event(ch, PCXE_EVENT_HANGUP); in doevent()
1759 tty = ch->tty; in doevent()
1768 if (ch->asyncflags & ASYNC_SAK) in doevent()
1775 if (ch->statusflags & LOWWAIT) { in doevent()
1776 ch->statusflags &= ~LOWWAIT; in doevent()
1782 ch->statusflags &= ~TXBUSY; in doevent()
1783 if (ch->statusflags & EMPTYWAIT) { in doevent()
1784 ch->statusflags &= ~EMPTYWAIT; in doevent()
1791 globalwinon(ch); in doevent()
1803 fepcmd(struct channel *ch, int cmd, int word_or_byte, int byte2, int ncmds, in fepcmd() argument
1811 if(ch->board->status == DISABLED) in fepcmd()
1814 assertgwinon(ch); in fepcmd()
1816 memaddr = (unchar *)phys_to_virt(ch->board->membase); in fepcmd()
1817 head = ch->mailbox->cin; in fepcmd()
1827 *(unchar *)(memaddr+head+CSTART+1) = ch->dev - ch->board->first_minor; in fepcmd()
1834 *(unchar *)(memaddr+head+CSTART+1) = ch->dev - ch->board->first_minor; in fepcmd()
1839 ch->mailbox->cin = head; in fepcmd()
1850 head = ch->mailbox->cin; in fepcmd()
1851 tail = ch->mailbox->cout; in fepcmd()
1862 static unsigned termios2digi_c(struct channel *ch, unsigned cflag) in termios2digi_c() argument
1867 ch->digiext.digi_flags |= DIGI_FAST; in termios2digi_c()
1876 else ch->digiext.digi_flags &= ~DIGI_FAST; in termios2digi_c()
1881 static unsigned termios2digi_i(struct channel *ch, unsigned iflag) in termios2digi_i() argument
1885 if(ch->digiext.digi_flags & DIGI_AIXON) in termios2digi_i()
1890 static unsigned termios2digi_h(struct channel *ch, unsigned cflag) in termios2digi_h() argument
1895 ch->digiext.digi_flags |= (RTSPACE|CTSPACE); in termios2digi_h()
1898 if(ch->digiext.digi_flags & RTSPACE) in termios2digi_h()
1900 if(ch->digiext.digi_flags & DTRPACE) in termios2digi_h()
1902 if(ch->digiext.digi_flags & CTSPACE) in termios2digi_h()
1904 if(ch->digiext.digi_flags & DSRPACE) in termios2digi_h()
1905 res |= ch->dsr; in termios2digi_h()
1906 if(ch->digiext.digi_flags & DCDPACE) in termios2digi_h()
1907 res |= ch->dcd; in termios2digi_h()
1910 ch->digiext.digi_flags |= RTSPACE; in termios2digi_h()
1912 ch->digiext.digi_flags |= CTSPACE; in termios2digi_h()
1917 static void pcxxparam(struct tty_struct *tty, struct channel *ch) in pcxxparam() argument
1924 bc = ch->brdchan; in pcxxparam()
1925 assertgwinon(ch); in pcxxparam()
1932 fepcmd(ch, STOUT, (unsigned) head, 0, 0, 0); in pcxxparam()
1936 cflag = termios2digi_c(ch, ts->c_cflag); in pcxxparam()
1938 if(cflag != ch->fepcflag) { in pcxxparam()
1939 ch->fepcflag = cflag; in pcxxparam()
1940 fepcmd(ch, SETCTRLFLAGS, (unsigned) cflag, 0, 0, 0); in pcxxparam()
1944 ch->asyncflags &= ~ASYNC_CHECK_CD; in pcxxparam()
1946 ch->asyncflags |= ASYNC_CHECK_CD; in pcxxparam()
1952 iflag = termios2digi_i(ch, ts->c_iflag); in pcxxparam()
1954 if(iflag != ch->fepiflag) { in pcxxparam()
1955 ch->fepiflag = iflag; in pcxxparam()
1956 fepcmd(ch, SETIFLAGS, (unsigned int) ch->fepiflag, 0, 0, 0); in pcxxparam()
1959 bc->mint = ch->dcd; in pcxxparam()
1960 if((ts->c_cflag & CLOCAL) || (ch->digiext.digi_flags & DIGI_FORCEDCD)) in pcxxparam()
1961 if(ch->digiext.digi_flags & DIGI_FORCEDCD) in pcxxparam()
1964 ch->imodem = bc->mstat; in pcxxparam()
1966 hflow = termios2digi_h(ch, ts->c_cflag); in pcxxparam()
1968 if(hflow != ch->hflow) { in pcxxparam()
1969 ch->hflow = hflow; in pcxxparam()
1970 fepcmd(ch, SETHFLOW, hflow, 0xff, 0, 1); in pcxxparam()
1975 if(ch->omodem != mval) { in pcxxparam()
1976 ch->omodem = mval; in pcxxparam()
1977 fepcmd(ch, SETMODEM, mval, RTS|DTR, 0, 1); in pcxxparam()
1980 if(ch->startc != ch->fepstartc || ch->stopc != ch->fepstopc) { in pcxxparam()
1981 ch->fepstartc = ch->startc; in pcxxparam()
1982 ch->fepstopc = ch->stopc; in pcxxparam()
1983 fepcmd(ch, SONOFFC, ch->fepstartc, ch->fepstopc, 0, 1); in pcxxparam()
1986 if(ch->startca != ch->fepstartca || ch->stopca != ch->fepstopca) { in pcxxparam()
1987 ch->fepstartca = ch->startca; in pcxxparam()
1988 ch->fepstopca = ch->stopca; in pcxxparam()
1989 fepcmd(ch, SAUXONOFFC, ch->fepstartca, ch->fepstopca, 0, 1); in pcxxparam()
1994 static void receive_data(struct channel *ch) in receive_data() argument
2006 globalwinon(ch); in receive_data()
2008 if (ch->statusflags & RXSTOPPED) in receive_data()
2011 tty = ch->tty; in receive_data()
2015 bc = ch->brdchan; in receive_data()
2022 wrapmask = ch->rxbufsize - 1; in receive_data()
2051 rxwinon(ch); in receive_data()
2055 wrapgap = (head >= tail) ? head - tail : ch->rxbufsize - tail; in receive_data()
2068 memcpy(rptr, ch->rxptr + tail, piece); in receive_data()
2076 globalwinon(ch); in receive_data()
2080 tty_schedule_flip(ch->tty); in receive_data()
2088 struct channel *ch = (struct channel *) tty->driver_data; in pcxe_ioctl() local
2096 if(ch) in pcxe_ioctl()
2097 bc = ch->brdchan; in pcxe_ioctl()
2110 setup_empty_event(tty,ch); in pcxe_ioctl()
2113 digi_send_break(ch, HZ/4); /* 1/4 second */ in pcxe_ioctl()
2120 setup_empty_event(tty,ch); in pcxe_ioctl()
2122 digi_send_break(ch, arg ? arg*(HZ/10) : HZ/4); in pcxe_ioctl()
2142 globalwinon(ch); in pcxe_ioctl()
2144 memoff(ch); in pcxe_ioctl()
2153 if(mstat & ch->dsr) in pcxe_ioctl()
2157 if(mstat & ch->dcd) in pcxe_ioctl()
2180 ch->modemfake = DTR|RTS; in pcxe_ioctl()
2181 ch->modem = mflag; in pcxe_ioctl()
2185 ch->modemfake |= mflag; in pcxe_ioctl()
2186 ch->modem |= mflag; in pcxe_ioctl()
2190 ch->modemfake &= ~mflag; in pcxe_ioctl()
2191 ch->modem &= ~mflag; in pcxe_ioctl()
2196 globalwinon(ch); in pcxe_ioctl()
2197 pcxxparam(tty,ch); in pcxe_ioctl()
2198 memoff(ch); in pcxe_ioctl()
2204 ch->omodem |= DTR; in pcxe_ioctl()
2205 globalwinon(ch); in pcxe_ioctl()
2206 fepcmd(ch, SETMODEM, DTR, 0, 10, 1); in pcxe_ioctl()
2207 memoff(ch); in pcxe_ioctl()
2212 ch->omodem &= ~DTR; in pcxe_ioctl()
2214 globalwinon(ch); in pcxe_ioctl()
2215 fepcmd(ch, SETMODEM, 0, DTR, 10, 1); in pcxe_ioctl()
2216 memoff(ch); in pcxe_ioctl()
2221 if (copy_to_user((char*)arg, &ch->digiext, sizeof(digi_t))) in pcxe_ioctl()
2228 setup_empty_event(tty,ch); in pcxe_ioctl()
2238 if (copy_from_user(&ch->digiext, (char*)arg, sizeof(digi_t))) in pcxe_ioctl()
2241 printk("ioctl(DIGI_SETA): flags = %x\n", ch->digiext.digi_flags); in pcxe_ioctl()
2244 if(ch->digiext.digi_flags & DIGI_ALTPIN) { in pcxe_ioctl()
2245 ch->dcd = DSR; in pcxe_ioctl()
2246 ch->dsr = CD; in pcxe_ioctl()
2248 ch->dcd = CD; in pcxe_ioctl()
2249 ch->dsr = DSR; in pcxe_ioctl()
2253 globalwinon(ch); in pcxe_ioctl()
2254 pcxxparam(tty,ch); in pcxe_ioctl()
2255 memoff(ch); in pcxe_ioctl()
2262 globalwinon(ch); in pcxe_ioctl()
2270 memoff(ch); in pcxe_ioctl()
2280 startc = ch->startc; in pcxe_ioctl()
2281 stopc = ch->stopc; in pcxe_ioctl()
2283 startc = ch->startca; in pcxe_ioctl()
2284 stopc = ch->stopca; in pcxe_ioctl()
2292 globalwinon(ch); in pcxe_ioctl()
2295 ch->fepstartc = ch->startc = dflow.startc; in pcxe_ioctl()
2296 ch->fepstopc = ch->stopc = dflow.stopc; in pcxe_ioctl()
2297 fepcmd(ch,SONOFFC,ch->fepstartc,ch->fepstopc,0, 1); in pcxe_ioctl()
2299 ch->fepstartca = ch->startca = dflow.startc; in pcxe_ioctl()
2300 ch->fepstopca = ch->stopca = dflow.stopc; in pcxe_ioctl()
2301 fepcmd(ch, SAUXONOFFC, ch->fepstartca, ch->fepstopca, 0, 1); in pcxe_ioctl()
2304 if(ch->statusflags & TXSTOPPED) in pcxe_ioctl()
2307 memoff(ch); in pcxe_ioctl()
2449 void digi_send_break(struct channel *ch, int msec) in digi_send_break() argument
2455 globalwinon(ch); in digi_send_break()
2465 fepcmd(ch, SENDBREAK, msec, 0, 10, 0); in digi_send_break()
2466 memoff(ch); in digi_send_break()
2471 static void setup_empty_event(struct tty_struct *tty, struct channel *ch) in setup_empty_event() argument
2478 globalwinon(ch); in setup_empty_event()
2479 ch->statusflags |= EMPTYWAIT; in setup_empty_event()
2480 bc = ch->brdchan; in setup_empty_event()
2482 memoff(ch); in setup_empty_event()