• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/net/wan/

Lines Matching refs:nl

355 	struct net_local  *nl;
387 nl = netdev_priv(dev);
388 if( !nl ) {
394 memset( nl, 0, sizeof(struct net_local) );
395 spin_lock_init( &nl->lock );
405 nl->maxframe = DEFAULT_FRAME_LEN;
406 nl->csr1.rate = baud[ num ];
408 if( (nl->cur_rxl_index = rxl[ num ]) == -1 )
410 nl->cur_rxl_index = DEF_RXL,
411 nl->delta_rxl = DEF_RXL_DELTA;
413 nl->delta_rxl = 0;
414 nl->csr1.rxl = rxl_tab[ nl->cur_rxl_index ];
416 nl->state |= FL_SLOW_MODE;
426 ( (nl->state & FL_SLOW_MODE) ? 500000 : 2000000)
427 / (1 << nl->csr1.rate) );
429 if( nl->delta_rxl == 0 )
430 printk( "0x%x (fixed)\n", nl->cur_rxl_index );
435 nl->master = dev;
436 nl->link = NULL;
456 struct net_local *nl = netdev_priv(p);
457 spin_lock( &nl->lock );
458 if( nl->tx_buf_p || (nl->state & FL_LINE_DOWN) ) {
459 p = nl->link;
460 spin_unlock( &nl->lock );
464 spin_unlock( &nl->lock );
478 struct net_local *nl = netdev_priv(dev);
481 spin_lock( &nl->lock );
485 spin_unlock( &nl->lock );
512 struct net_local *nl = netdev_priv(dev);
515 spin_lock( &nl->lock );
516 if( nl->second )
517 spin_lock(&NET_LOCAL_LOCK(nl->second));
524 if( nl->second && /* second channel present */
525 (inb( nl->second->base_addr+CSR0 ) & (RC_RDY | TR_RDY)) )
526 handle_channel( nl->second ),
530 if( nl->second )
531 spin_unlock(&NET_LOCAL_LOCK(nl->second));
532 spin_unlock( &nl->lock );
540 struct net_local *nl = netdev_priv(dev);
548 if( nl->state & FL_SLAVE )
549 spin_lock(&NET_LOCAL_LOCK(nl->master));
554 nl->timer_ticks = CHANGE_LEVEL_START_TICKS;
560 req_ans = !(nl->state & FL_PREV_OK);
574 if( req_ans || nl->tx_frameno != 0 )
584 if( nl->state & FL_SLAVE )
585 spin_unlock(&NET_LOCAL_LOCK(nl->master));
598 struct net_local *nl = netdev_priv(dev);
616 nl->state |= FL_PREV_OK;
618 nl->in_stats.all_rx_number++;
620 nl->state &= ~FL_PREV_OK,
622 nl->in_stats.all_rx_number++,
623 nl->in_stats.bad_rx_number++;
632 struct net_local *nl = netdev_priv(dev);
636 if( nl->state & FL_NEED_RESEND ) {
639 if( nl->trans_errors ) {
640 --nl->trans_errors;
641 if( nl->framelen != 0 )
642 nl->in_stats.resend_tx_number++;
646 if( (nl->state & FL_SLAVE) || nl->link )
648 nl->state |= FL_LINE_DOWN;
653 nl->trans_errors = TR_ERROR_COUNT;
656 nl->state |= FL_NEED_RESEND;
663 if( nl->framelen ) {
665 nl->in_stats.all_tx_number++;
666 nl->state |= FL_WAIT_ACK;
674 if( nl->tx_frameno )
689 struct net_local *nl = netdev_priv(dev);
690 struct sk_buff *skb = nl->tx_buf_p;
692 unsigned len = min_t(unsigned int, skb->len - nl->outpos, nl->framelen);
694 outsb( dev->base_addr + DAT, skb->data + nl->outpos, len );
695 *crc_p = calc_crc32( *crc_p, skb->data + nl->outpos, len );
698 for( len = nl->framelen - len; len--; )
708 struct net_local *nl = netdev_priv(dev);
713 nl->wait_frameno = frameno,
714 nl->inppos = 0;
716 if( nl->wait_frameno == frameno ) {
718 if( nl->inppos + framelen <= ETHER_MAX_LEN )
727 nl->wait_frameno = 0,
728 nl->inppos = 0,
730 nl->master->stats.rx_errors++,
731 nl->master->stats.rx_missed_errors++;
745 nl->wait_frameno = 0,
747 nl->master->stats.rx_errors++,
748 nl->master->stats.rx_crc_errors++;
761 struct net_local *nl = netdev_priv(dev);
764 nl->master->stats.tx_packets++;
765 nl->master->stats.tx_bytes += nl->tx_buf_p->len;
768 dev->stats.tx_bytes += nl->tx_buf_p->len;
770 dev_kfree_skb_irq( nl->tx_buf_p );
772 nl->tx_buf_p = NULL;
774 nl->outpos = 0;
775 nl->state &= ~(FL_WAIT_ACK | FL_NEED_RESEND);
776 nl->framelen = 0;
783 struct net_local *nl = netdev_priv(dev);
786 nl->state &= ~FL_NEED_RESEND;
788 if( nl->state & FL_WAIT_ACK ) {
789 nl->outpos += nl->framelen;
791 if( --nl->tx_frameno )
792 nl->framelen = min_t(unsigned int,
793 nl->maxframe,
794 nl->tx_buf_p->len - nl->outpos);
798 netif_wake_queue( nl->master );
805 nl->state &= ~FL_WAIT_ACK;
817 struct net_local *nl = netdev_priv(dev);
821 if( nl->inppos + framelen > ETHER_MAX_LEN )
824 if( !nl->rx_buf_p && !(nl->rx_buf_p = get_rx_buf( dev )) )
827 p = nl->rx_buf_p->data + nl->inppos;
832 nl->inppos += framelen - 4;
833 if( --nl->wait_frameno == 0 ) /* last frame received */
848 struct net_local *nl = netdev_priv(dev);
852 /* nl->tx_buf_p == NULL here! */
853 if( nl->tx_buf_p )
856 nl->outpos = 0;
857 nl->state &= ~(FL_WAIT_ACK | FL_NEED_RESEND);
863 nl->tx_buf_p = skb;
864 nl->tx_frameno = DIV_ROUND_UP(len, nl->maxframe);
865 nl->framelen = len < nl->maxframe ? len : nl->maxframe;
869 nl->master->trans_start = jiffies;
879 struct net_local *nl = netdev_priv(dev);
881 if( nl->tx_buf_p )
882 dev_kfree_skb_any( nl->tx_buf_p ),
883 nl->tx_buf_p = NULL,
885 nl->master->stats.tx_errors++,
886 nl->master->stats.tx_carrier_errors++;
892 nl->tx_frameno = 0;
893 nl->framelen = 0;
894 nl->outpos = 0;
895 nl->state &= ~(FL_WAIT_ACK | FL_NEED_RESEND);
897 netif_start_queue( nl->master );
898 nl->master->trans_start = jiffies;
909 struct net_local *nl = netdev_priv(dev);
912 u32 len_field = nl->framelen + 6; /* CRC + frameno + reserved */
915 if( nl->state & FL_NEED_RESEND )
918 if( nl->outpos == 0 )
921 len_field |= (nl->state & FL_PREV_OK) ? FRAME_SENT_OK : FRAME_SENT_BAD;
931 outb( nl->tx_frameno, dev->base_addr + DAT );
932 crc = CRC32( nl->tx_frameno, crc );
1011 struct net_local *nl = netdev_priv(dev);
1012 struct sk_buff *skb = nl->rx_buf_p;
1014 skb_put( skb, nl->inppos );
1017 skb->protocol = eth_type_trans( skb, nl->master );
1019 ++nl->master->stats.rx_packets;
1020 nl->master->stats.rx_bytes += nl->inppos;
1025 dev->stats.rx_bytes += nl->inppos;
1027 nl->rx_buf_p = NULL; /* protocol driver will clear this sk_buff */
1042 struct net_local *nl = netdev_priv(dev);
1043 struct timer_list *w = &nl->watchdog;
1047 spin_lock_irqsave( &nl->lock, flags );
1052 if( nl->timer_ticks ) {
1055 nl->timer_ticks--;
1057 nl->in_stats.timeout_number++;
1058 if( nl->delta_rxl )
1061 outb( *(u_char *)&nl->csr1 | PR_RES,
1066 nl->state &= ~FL_LINE_DOWN;
1076 spin_unlock_irqrestore( &nl->lock, flags );
1095 struct net_local *nl = netdev_priv(dev);
1097 nl->timer_ticks = CHANGE_LEVEL_START_TICKS;
1098 nl->state &= ~(FL_WAIT_ACK | FL_NEED_RESEND);
1099 nl->state |= FL_PREV_OK;
1101 nl->inppos = nl->outpos = 0;
1102 nl->wait_frameno = 0;
1103 nl->tx_frameno = 0;
1104 nl->framelen = 0;
1106 outb( *(u_char *)&nl->csr1 | PR_RES, dev->base_addr + CSR1 );
1117 struct net_local *nl = netdev_priv(dev);
1119 if( nl->delta_rxl == 0 ) /* do not auto-negotiate RxL */
1122 if( nl->cur_rxl_index == 0 )
1123 nl->delta_rxl = 1;
1124 else if( nl->cur_rxl_index == 15 )
1125 nl->delta_rxl = -1;
1126 else if( nl->cur_rxl_rcvd < nl->prev_rxl_rcvd )
1127 nl->delta_rxl = -nl->delta_rxl;
1129 nl->csr1.rxl = rxl_tab[ nl->cur_rxl_index += nl->delta_rxl ];
1131 outb( *(u8 *)&nl->csr1, dev->base_addr + CSR1 );
1133 nl->prev_rxl_rcvd = nl->cur_rxl_rcvd;
1134 nl->cur_rxl_rcvd = 0;
1141 struct net_local *nl = netdev_priv(dev);
1143 nl->cur_rxl_index = timeout_rxl_tab[ nl->timeout_rxl ];
1144 if( ++nl->timeout_rxl >= 4 )
1145 nl->timeout_rxl = 0;
1147 nl->csr1.rxl = rxl_tab[ nl->cur_rxl_index ];
1149 outb( *(unsigned char *)&nl->csr1, dev->base_addr + CSR1 );
1151 nl->prev_rxl_rcvd = nl->cur_rxl_rcvd;
1152 nl->cur_rxl_rcvd = 0;
1164 struct net_local *nl = netdev_priv(dev);
1165 struct timer_list *w = &nl->watchdog;
1184 nl->state |= FL_SECONDARY;
1197 spin_lock( &nl->lock );
1199 memset( &nl->in_stats, 0, sizeof(struct sbni_in_stats) );
1212 spin_unlock( &nl->lock );
1220 struct net_local *nl = netdev_priv(dev);
1222 if( nl->second && nl->second->flags & IFF_UP ) {
1224 nl->second->name );
1229 if( nl->state & FL_SLAVE )
1232 while( nl->link ) /* it's master device! */
1233 emancipate( nl->link );
1236 spin_lock( &nl->lock );
1238 nl->second = NULL;
1242 del_timer( &nl->watchdog );
1246 if( !(nl->state & FL_SECONDARY) )
1248 nl->state &= FL_SECONDARY;
1250 spin_unlock( &nl->lock );
1304 struct net_local *nl = netdev_priv(dev);
1315 if (copy_to_user( ifr->ifr_data, &nl->in_stats,
1323 memset( &nl->in_stats, 0, sizeof(struct sbni_in_stats) );
1328 flags.rate = nl->csr1.rate;
1329 flags.slow_mode = (nl->state & FL_SLOW_MODE) != 0;
1330 flags.rxl = nl->cur_rxl_index;
1331 flags.fixed_rxl = nl->delta_rxl == 0;
1341 spin_lock( &nl->lock );
1344 nl->delta_rxl = 0,
1345 nl->cur_rxl_index = flags.rxl;
1347 nl->delta_rxl = DEF_RXL_DELTA,
1348 nl->cur_rxl_index = DEF_RXL;
1350 nl->csr1.rxl = rxl_tab[ nl->cur_rxl_index ];
1351 nl->csr1.rate = flags.rate;
1352 outb( *(u8 *)&nl->csr1 | PR_RES, dev->base_addr + CSR1 );
1353 spin_unlock( &nl->lock );
1394 struct net_local *nl = netdev_priv(dev);
1397 if( nl->state & FL_SLAVE ) /* This isn't master or free device */
1403 spin_lock( &nl->lock );
1407 snl->link = nl->link;
1408 nl->link = slave_dev;
1419 spin_unlock( &nl->lock );
1431 struct net_local *nl = netdev_priv(p);
1436 spin_lock( &nl->lock );
1457 spin_unlock( &nl->lock );