• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/char/ip2/

Lines Matching defs:pCh

269 		    tty->name,(pCh->flags), \
842 i2ChanStrPtr pCh;
909 DevTableMem[boardnum] = pCh =
911 if ( !pCh ) {
915 if ( !i2InitChannels( pB, nports, pCh ) ) {
917 kfree ( pCh );
926 DevTable[portnum + i] = pCh;
927 pCh->port_index = portnum + i;
928 pCh++;
937 DevTableMem[boardnum] = pCh =
939 if ( !pCh ) {
943 pB->i2eChannelPtr = pCh;
945 if ( !i2InitChannels( pB, nports, pCh ) ) {
947 kfree ( pCh );
953 DevTable[IP2_PORTS_PER_BOARD * boardnum + i] = pCh;
954 pCh->port_index = (IP2_PORTS_PER_BOARD * boardnum) + i;
955 pCh++;
1303 i2ChanStrPtr pCh = container_of(work, i2ChanStr, tqueue_input);
1309 if ( pCh->pTTY != NULL ) {
1310 read_lock_irqsave(&pCh->Ibuf_spinlock, flags);
1311 if (!pCh->throttled && (pCh->Ibuf_stuff != pCh->Ibuf_strip)) {
1312 read_unlock_irqrestore(&pCh->Ibuf_spinlock, flags);
1313 i2Input( pCh );
1315 read_unlock_irqrestore(&pCh->Ibuf_spinlock, flags);
1319 i2InputFlush( pCh );
1337 i2ChanStrPtr pCh = container_of(work, i2ChanStr, tqueue_status);
1340 status = i2GetStatus( pCh, (I2_BRK|I2_PAR|I2_FRA|I2_OVR) );
1344 if (pCh->pTTY && (status & (I2_BRK|I2_PAR|I2_FRA|I2_OVR)) ) {
1347 if (I_IGNBRK(pCh->pTTY))
1349 if (I_BRKINT(pCh->pTTY)) {
1350 isig(SIGINT, pCh->pTTY, 1);
1353 wake_up_interruptible(&pCh->pTTY->read_wait);
1377 tmp = pCh->pTTY->real_raw;
1378 pCh->pTTY->real_raw = 0;
1379 pCh->pTTY->ldisc->ops.receive_buf( pCh->pTTY, &brkc, &brkf, 1 );
1380 pCh->pTTY->real_raw = tmp;
1387 wake_up_interruptible(&pCh->delta_msr_wait);
1389 if ( (pCh->flags & ASYNC_CHECK_CD) && (status & I2_DDCD) ) {
1391 if ( pCh->wopen ) {
1392 wake_up_interruptible ( &pCh->open_wait );
1395 if (pCh->pTTY && (!(pCh->pTTY->termios->c_cflag & CLOCAL)) ) {
1396 tty_hangup( pCh->pTTY );
1420 open_sanity_check( i2ChanStrPtr pCh, i2eBordStrPtr pBrd )
1424 } else if ( pBrd != pCh->pMyBord ) {
1426 pCh->pMyBord );
1427 } else if ( pBrd->i2eChannelCnt < pCh->port_index ) {
1428 printk(KERN_ERR "IP2: bad device index (%d)\n", pCh->port_index );
1429 } else if (&((i2ChanStrPtr)pBrd->i2eChannelPtr)[pCh->port_index] != pCh) {
1455 i2ChanStrPtr pCh = DevTable[tty->index];
1459 if ( pCh == NULL ) {
1463 pCh->pTTY = tty;
1464 tty->driver_data = pCh;
1469 tty, pFile, tty->name, pCh->infl.hd.i2sChannel, pCh->port_index);
1470 open_sanity_check ( pCh, pCh->pMyBord );
1473 i2QueueCommands(PTYPE_INLINE, pCh, 100, 3, CMD_DTRUP,CMD_RTSUP,CMD_DCD_REP);
1474 pCh->dataSetOut |= (I2_DTR | I2_RTS);
1475 serviceOutgoingFifo( pCh->pMyBord );
1483 add_wait_queue(&pCh->close_wait, &wait);
1486 if ( tty_hung_up_p(pFile) || ( pCh->flags & ASYNC_CLOSING )) {
1487 if ( pCh->flags & ASYNC_CLOSING ) {
1494 remove_wait_queue(&pCh->close_wait, &wait);
1495 return( pCh->flags & ASYNC_HUP_NOTIFY ) ? -EAGAIN : -ERESTARTSYS;
1499 remove_wait_queue(&pCh->close_wait, &wait);
1505 pCh->flags |= ASYNC_NORMAL_ACTIVE;
1519 ++pCh->wopen;
1522 add_wait_queue(&pCh->open_wait, &wait);
1525 i2QueueCommands(PTYPE_INLINE, pCh, 100, 2, CMD_DTRUP, CMD_RTSUP);
1526 pCh->dataSetOut |= (I2_DTR | I2_RTS);
1528 serviceOutgoingFifo( pCh->pMyBord );
1531 remove_wait_queue(&pCh->open_wait, &wait);
1532 return ( pCh->flags & ASYNC_HUP_NOTIFY ) ? -EBUSY : -ERESTARTSYS;
1534 if (!(pCh->flags & ASYNC_CLOSING) &&
1535 (do_clocal || (pCh->dataSetIn & I2_DCD) )) {
1542 (pCh->flags & ASYNC_CLOSING)?"True":"False");
1546 (pCh->flags & ASYNC_CLOSING) );
1549 rc = (( pCh->flags & ASYNC_HUP_NOTIFY ) ? -EAGAIN : -ERESTARTSYS);
1557 remove_wait_queue(&pCh->open_wait, &wait);
1559 --pCh->wopen; //why count?
1566 pCh->flags |= ASYNC_NORMAL_ACTIVE;
1572 i2QueueCommands(PTYPE_INLINE, pCh, 0, 2, CMD_CTSFL_DSAB, CMD_RTSFL_DSAB);
1574 set_params( pCh, NULL );
1581 pCh->channelOptions |= CO_NBLOCK_WRITE;
1586 serviceOutgoingFifo( pCh->pMyBord );
1606 i2ChanStrPtr pCh = tty->driver_data;
1608 if ( !pCh ) {
1630 pCh->flags |= ASYNC_CLOSING; // last close actually
1634 if (pCh->ClosingWaitTime != ASYNC_CLOSING_WAIT_NONE) {
1640 ip2_wait_until_sent(tty, pCh->ClosingWaitTime );
1647 i2InputFlush( pCh );
1650 i2QueueCommands(PTYPE_INLINE, pCh, 100, 4,
1653 i2QueueCommands(PTYPE_INLINE, pCh, 100, 2, CMD_RTSDN, CMD_DTRDN);
1654 pCh->dataSetOut &= ~(I2_DTR | I2_RTS);
1655 i2QueueCommands( PTYPE_INLINE, pCh, 100, 1, CMD_PAUSE(25));
1658 serviceOutgoingFifo ( pCh->pMyBord );
1664 pCh->pTTY = NULL;
1666 if (pCh->wopen) {
1667 if (pCh->ClosingDelay) {
1668 msleep_interruptible(jiffies_to_msecs(pCh->ClosingDelay));
1670 wake_up_interruptible(&pCh->open_wait);
1673 pCh->flags &=~(ASYNC_NORMAL_ACTIVE|ASYNC_CLOSING);
1674 wake_up_interruptible(&pCh->close_wait);
1698 i2ChanStrPtr pCh = tty->driver_data;
1700 if( !pCh ) {
1710 i2QueueCommands(PTYPE_BYPASS, pCh, 0, 1, CMD_DCD_NREP);
1711 i2QueueCommands(PTYPE_INLINE, pCh, 0, 2, CMD_CTSFL_DSAB, CMD_RTSFL_DSAB);
1713 i2QueueCommands(PTYPE_BYPASS, pCh, 0, 2, CMD_RTSDN, CMD_DTRDN);
1714 pCh->dataSetOut &= ~(I2_DTR | I2_RTS);
1715 i2QueueCommands( PTYPE_INLINE, pCh, 100, 1, CMD_PAUSE(25));
1717 i2QueueCommands(PTYPE_INLINE, pCh, 1, 3,
1719 serviceOutgoingFifo ( pCh->pMyBord );
1721 wake_up_interruptible ( &pCh->delta_msr_wait );
1723 pCh->flags &= ~ASYNC_NORMAL_ACTIVE;
1724 pCh->pTTY = NULL;
1725 wake_up_interruptible ( &pCh->open_wait );
1751 i2ChanStrPtr pCh = tty->driver_data;
1761 write_lock_irqsave(&pCh->Pbuf_spinlock, flags);
1762 bytesSent = i2Output( pCh, pData, count);
1763 write_unlock_irqrestore(&pCh->Pbuf_spinlock, flags);
1783 i2ChanStrPtr pCh = tty->driver_data;
1788 write_lock_irqsave(&pCh->Pbuf_spinlock, flags);
1789 pCh->Pbuf[pCh->Pbuf_stuff++] = ch;
1790 if ( pCh->Pbuf_stuff == sizeof pCh->Pbuf ) {
1791 write_unlock_irqrestore(&pCh->Pbuf_spinlock, flags);
1794 write_unlock_irqrestore(&pCh->Pbuf_spinlock, flags);
1812 i2ChanStrPtr pCh = tty->driver_data;
1815 write_lock_irqsave(&pCh->Pbuf_spinlock, flags);
1816 if ( pCh->Pbuf_stuff ) {
1823 strip = i2Output( pCh, pCh->Pbuf, pCh->Pbuf_stuff);
1824 if ( strip != pCh->Pbuf_stuff ) {
1825 memmove( pCh->Pbuf, &pCh->Pbuf[strip], pCh->Pbuf_stuff - strip );
1827 pCh->Pbuf_stuff -= strip;
1829 write_unlock_irqrestore(&pCh->Pbuf_spinlock, flags);
1844 i2ChanStrPtr pCh = tty->driver_data;
1847 read_lock_irqsave(&pCh->Pbuf_spinlock, flags);
1848 bytesFree = i2OutputFree( pCh ) - pCh->Pbuf_stuff;
1849 read_unlock_irqrestore(&pCh->Pbuf_spinlock, flags);
1868 i2ChanStrPtr pCh = tty->driver_data;
1872 ip2trace (CHANN, ITRC_WRITE, 12, 1, pCh->Obuf_char_count + pCh->Pbuf_stuff );
1876 pCh->Obuf_char_count + pCh->Pbuf_stuff,
1877 pCh->Obuf_char_count, pCh->Pbuf_stuff );
1879 read_lock_irqsave(&pCh->Obuf_spinlock, flags);
1880 rc = pCh->Obuf_char_count;
1881 read_unlock_irqrestore(&pCh->Obuf_spinlock, flags);
1882 read_lock_irqsave(&pCh->Pbuf_spinlock, flags);
1883 rc += pCh->Pbuf_stuff;
1884 read_unlock_irqrestore(&pCh->Pbuf_spinlock, flags);
1900 i2ChanStrPtr pCh = tty->driver_data;
1908 write_lock_irqsave(&pCh->Pbuf_spinlock, flags);
1909 pCh->Pbuf_stuff = 0;
1910 write_unlock_irqrestore(&pCh->Pbuf_spinlock, flags);
1911 i2FlushOutput( pCh );
1934 i2ChanStrPtr pCh = tty->driver_data;
1938 i2DrainOutput( pCh, i );
1959 i2ChanStrPtr pCh = tty->driver_data;
1970 pCh->throttled = 1;
1985 i2ChanStrPtr pCh = tty->driver_data;
1993 pCh->throttled = 0;
1994 i2QueueCommands(PTYPE_BYPASS, pCh, 0, 1, CMD_RESUME);
1995 serviceOutgoingFifo( pCh->pMyBord );
1996 read_lock_irqsave(&pCh->Ibuf_spinlock, flags);
1997 if ( pCh->Ibuf_stuff != pCh->Ibuf_strip ) {
1998 read_unlock_irqrestore(&pCh->Ibuf_spinlock, flags);
2002 i2Input( pCh );
2004 read_unlock_irqrestore(&pCh->Ibuf_spinlock, flags);
2010 i2ChanStrPtr pCh = DevTable[tty->index];
2012 i2QueueCommands(PTYPE_BYPASS, pCh, 0, 1, CMD_RESUME);
2013 i2QueueCommands(PTYPE_BYPASS, pCh, 100, 1, CMD_UNSUSPEND);
2014 i2QueueCommands(PTYPE_BYPASS, pCh, 100, 1, CMD_RESUME);
2023 i2ChanStrPtr pCh = DevTable[tty->index];
2025 i2QueueCommands(PTYPE_BYPASS, pCh, 100, 1, CMD_SUSPEND);
2037 i2ChanStrPtr pCh = DevTable[tty->index];
2042 if (pCh == NULL)
2051 i2QueueCommands(PTYPE_BYPASS, pCh, 100, 1, CMD_DSS_NOW);
2054 add_wait_queue(&pCh->dss_now_wait, &wait);
2057 serviceOutgoingFifo( pCh->pMyBord );
2062 remove_wait_queue(&pCh->dss_now_wait, &wait);
2068 return ((pCh->dataSetOut & I2_RTS) ? TIOCM_RTS : 0)
2069 | ((pCh->dataSetOut & I2_DTR) ? TIOCM_DTR : 0)
2070 | ((pCh->dataSetIn & I2_DCD) ? TIOCM_CAR : 0)
2071 | ((pCh->dataSetIn & I2_RI) ? TIOCM_RNG : 0)
2072 | ((pCh->dataSetIn & I2_DSR) ? TIOCM_DSR : 0)
2073 | ((pCh->dataSetIn & I2_CTS) ? TIOCM_CTS : 0);
2079 i2ChanStrPtr pCh = DevTable[tty->index];
2081 if (pCh == NULL)
2085 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_RTSUP);
2086 pCh->dataSetOut |= I2_RTS;
2089 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_DTRUP);
2090 pCh->dataSetOut |= I2_DTR;
2094 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_RTSDN);
2095 pCh->dataSetOut &= ~I2_RTS;
2098 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_DTRDN);
2099 pCh->dataSetOut &= ~I2_DTR;
2101 serviceOutgoingFifo( pCh->pMyBord );
2121 i2ChanStrPtr pCh = DevTable[tty->index];
2129 if ( pCh == NULL )
2132 pB = pCh->pMyBord;
2145 rc = get_serial_info(pCh, argp);
2154 rc = set_serial_info(pCh, argp);
2172 i2QueueCommands( PTYPE_BYPASS, pCh, 100, 1,
2178 i2QueueCommands( PTYPE_BYPASS, pCh, 100, 1,
2195 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_SEND_BRK(250));
2196 serviceOutgoingFifo( pCh->pMyBord );
2208 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1,
2210 serviceOutgoingFifo ( pCh->pMyBord );
2242 cprev = pCh->icount; /* note the counters on entry */
2244 i2QueueCommands(PTYPE_BYPASS, pCh, 100, 4,
2247 add_wait_queue(&pCh->delta_msr_wait, &wait);
2250 serviceOutgoingFifo( pCh->pMyBord );
2264 cnow = pCh->icount; /* atomic copy */
2281 remove_wait_queue(&pCh->delta_msr_wait, &wait);
2283 i2QueueCommands(PTYPE_BYPASS, pCh, 100, 3,
2285 if ( ! (pCh->flags & ASYNC_CHECK_CD)) {
2286 i2QueueCommands(PTYPE_BYPASS, pCh, 100, 1, CMD_DCD_NREP);
2288 serviceOutgoingFifo( pCh->pMyBord );
2304 cnow = pCh->icount;
2355 get_serial_info ( i2ChanStrPtr pCh, struct serial_struct __user *retinfo )
2360 tmp.type = pCh->pMyBord->channelBtypes.bid_value[(pCh->port_index & (IP2_PORTS_PER_BOARD-1))/16];
2366 tmp.line = pCh->port_index;
2367 tmp.port = pCh->pMyBord->i2eBase;
2368 tmp.irq = ip2config.irq[pCh->port_index/64];
2369 tmp.flags = pCh->flags;
2370 tmp.baud_base = pCh->BaudBase;
2371 tmp.close_delay = pCh->ClosingDelay;
2372 tmp.closing_wait = pCh->ClosingWaitTime;
2373 tmp.custom_divisor = pCh->BaudDivisor;
2389 set_serial_info( i2ChanStrPtr pCh, struct serial_struct __user *new_info )
2402 if ( (ns.irq != ip2config.irq[pCh->port_index])
2403 || ((int) ns.port != ((int) (pCh->pMyBord->i2eBase)))
2404 || (ns.baud_base != pCh->BaudBase)
2405 || (ns.line != pCh->port_index) ) {
2409 old_flags = pCh->flags;
2410 old_baud_divisor = pCh->BaudDivisor;
2413 if ( ( ns.close_delay != pCh->ClosingDelay ) ||
2415 (pCh->flags & ~ASYNC_USR_MASK) ) ) {
2419 pCh->flags = (pCh->flags & ~ASYNC_USR_MASK) |
2421 pCh->BaudDivisor = ns.custom_divisor;
2423 pCh->flags = (pCh->flags & ~ASYNC_FLAGS) |
2425 pCh->BaudDivisor = ns.custom_divisor;
2426 pCh->ClosingDelay = ns.close_delay * HZ/100;
2427 pCh->ClosingWaitTime = ns.closing_wait * HZ/100;
2430 if ( ( (old_flags & ASYNC_SPD_MASK) != (pCh->flags & ASYNC_SPD_MASK) )
2431 || (old_baud_divisor != pCh->BaudDivisor) ) {
2433 set_params( pCh, NULL );
2452 i2ChanStrPtr pCh = (i2ChanStrPtr)tty->driver_data;
2458 set_params( pCh, old_termios );
2492 set_params( i2ChanStrPtr pCh, struct ktermios *o_tios )
2498 lflag = pCh->pTTY->termios->c_lflag;
2499 cflag = pCh->pTTY->termios->c_cflag;
2500 iflag = pCh->pTTY->termios->c_iflag;
2512 i2QueueCommands( PTYPE_BYPASS, pCh, 100, 2, CMD_RTSDN, CMD_DTRDN);
2513 pCh->dataSetOut &= ~(I2_DTR | I2_RTS);
2514 i2QueueCommands( PTYPE_INLINE, pCh, 100, 1, CMD_PAUSE(25));
2515 pCh->pTTY->termios->c_cflag |= (CBAUD & o_tios->c_cflag);
2523 if ( ( pCh->flags & ASYNC_SPD_MASK ) == ASYNC_SPD_HI ) {
2524 pCh->speed = CBR_57600;
2525 } else if ( (pCh->flags & ASYNC_SPD_MASK) == ASYNC_SPD_VHI ) {
2526 pCh->speed = CBR_115200;
2527 } else if ( (pCh->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST ) {
2528 pCh->speed = CBR_C1;
2530 pCh->speed = CBR_38400;
2533 case B50: pCh->speed = CBR_50; break;
2534 case B75: pCh->speed = CBR_75; break;
2535 case B110: pCh->speed = CBR_110; break;
2536 case B134: pCh->speed = CBR_134; break;
2537 case B150: pCh->speed = CBR_150; break;
2538 case B200: pCh->speed = CBR_200; break;
2539 case B300: pCh->speed = CBR_300; break;
2540 case B600: pCh->speed = CBR_600; break;
2541 case B1200: pCh->speed = CBR_1200; break;
2542 case B1800: pCh->speed = CBR_1800; break;
2543 case B2400: pCh->speed = CBR_2400; break;
2544 case B4800: pCh->speed = CBR_4800; break;
2545 case B9600: pCh->speed = CBR_9600; break;
2546 case B19200: pCh->speed = CBR_19200; break;
2547 case B57600: pCh->speed = CBR_57600; break;
2548 case B115200: pCh->speed = CBR_115200; break;
2549 case B153600: pCh->speed = CBR_153600; break;
2550 case B230400: pCh->speed = CBR_230400; break;
2551 case B307200: pCh->speed = CBR_307200; break;
2552 case B460800: pCh->speed = CBR_460800; break;
2553 case B921600: pCh->speed = CBR_921600; break;
2554 default: pCh->speed = CBR_9600; break;
2556 if ( pCh->speed == CBR_C1 ) {
2558 int bps = pCh->BaudBase / pCh->BaudDivisor;
2560 pCh->speed = CBR_921600;
2563 i2QueueCommands( PTYPE_INLINE, pCh, 100, 1, CMD_BAUD_DEF1(bps) );
2566 i2QueueCommands( PTYPE_INLINE, pCh, 100, 1, CMD_SETBAUD(pCh->speed));
2568 i2QueueCommands ( PTYPE_INLINE, pCh, 100, 2, CMD_DTRUP, CMD_RTSUP);
2569 pCh->dataSetOut |= (I2_DTR | I2_RTS);
2573 i2QueueCommands ( PTYPE_INLINE, pCh, 100, 1,
2578 i2QueueCommands ( PTYPE_INLINE, pCh, 100, 1,
2595 i2QueueCommands ( PTYPE_INLINE, pCh, 100, 1, CMD_SETBITS(datasize) );
2599 i2QueueCommands(PTYPE_INLINE, pCh, 100,
2602 i2QueueCommands(PTYPE_INLINE, pCh, 100,
2608 stop_char = STOP_CHAR(pCh->pTTY);
2609 start_char = START_CHAR(pCh->pTTY);
2624 i2QueueCommands(PTYPE_BYPASS, pCh, 100, 1, CMD_DEF_IXON(start_char));
2625 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_DEF_OXON(start_char));
2629 i2QueueCommands(PTYPE_BYPASS, pCh, 100, 1, CMD_DEF_IXOFF(stop_char));
2630 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_DEF_OXOFF(stop_char));
2640 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_OXON_OPT(COX_XON));
2643 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_OXON_OPT(COX_NONE));
2654 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_IXON_OPT(CIX_XANY));
2656 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_IXON_OPT(CIX_XON));
2660 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_IXON_OPT(CIX_NONE));
2665 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1,
2670 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1,
2682 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_BRK_NREP);
2698 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_BRK_REP(brkrpt));
2711 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_ISTRIP_OPT((char)0));
2716 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_SET_ERROR(parrpt));
2720 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_DCD_NREP);
2721 pCh->flags &= ~ASYNC_CHECK_CD;
2723 i2QueueCommands(PTYPE_INLINE, pCh, 100, 1, CMD_DCD_REP);
2724 pCh->flags |= ASYNC_CHECK_CD;
2728 i2DrainOutput( pCh, 100 );
2887 i2ChanStrPtr pCh;
2922 pCh = DevTable[cmd];
2923 if ( pCh )
2925 rc = copy_to_user(argp, pCh, sizeof(i2ChanStr));
2986 i2ChanStrPtr pCh;
3007 pCh = DevTable[i];
3008 if (pCh) {
3009 tty = pCh->pTTY;
3011 seq_printf(m,FMTLINE,i,(int)tty->flags,pCh->flags,
3015 pCh->outfl.asof,pCh->outfl.room,pCh->channelNeeds);
3016 seq_printf(m,FMTLIN3,pCh->infl.asof,pCh->infl.room);
3163 i2ChanStrPtr pCh;