• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/net/hamradio/

Lines Matching refs:yp

432 	struct yam_port *yp = netdev_priv(dev);
433 int divisor = 115200 / yp->baudrate;
498 static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp)
500 if (yp->dcd && yp->rx_len >= 3 && yp->rx_len < YAM_MAX_FRAME) {
501 int pkt_len = yp->rx_len - 2 + 1; /* -CRC + kiss */
504 if ((yp->rx_crch & yp->rx_crcl) != 0xFF) {
509 ++yp->stats.rx_dropped;
514 memcpy(cp, yp->rx_buf, pkt_len - 1);
518 ++yp->stats.rx_packets;
522 yp->rx_len = 0;
523 yp->rx_crcl = 0x21;
524 yp->rx_crch = 0xf3;
527 static inline void yam_rx_byte(struct net_device *dev, struct yam_port *yp, unsigned char rxb)
529 if (yp->rx_len < YAM_MAX_FRAME) {
530 unsigned char c = yp->rx_crcl;
531 yp->rx_crcl = (chktabl[c] ^ yp->rx_crch);
532 yp->rx_crch = (chktabh[c] ^ rxb);
533 yp->rx_buf[yp->rx_len++] = rxb;
553 struct yam_port *yp = netdev_priv(dev);
555 skb_queue_tail(&yp->send_queue, skb);
560 static void yam_start_tx(struct net_device *dev, struct yam_port *yp)
562 if ((yp->tx_state == TX_TAIL) || (yp->txd == 0))
563 yp->tx_count = 1;
565 yp->tx_count = (yp->bitrate * yp->txd) / 8000;
566 yp->tx_state = TX_HEAD;
572 struct yam_port *yp = netdev_priv(dev);
574 if (yp->magic != YAM_MAGIC || yp->tx_state != TX_OFF ||
575 skb_queue_empty(&yp->send_queue))
579 if (yp->dupmode) {
581 yam_start_tx(dev, yp);
584 if (yp->dcd) {
586 yp->slotcnt = yp->slot / 10;
590 if ((--yp->slotcnt) > 0)
593 yp->slotcnt = yp->slot / 10;
596 if ((random32() % 256) > yp->pers)
599 yam_start_tx(dev, yp);
615 static void yam_tx_byte(struct net_device *dev, struct yam_port *yp)
620 switch (yp->tx_state) {
624 if (--yp->tx_count <= 0) {
625 if (!(skb = skb_dequeue(&yp->send_queue))) {
627 yp->tx_state = TX_OFF;
630 yp->tx_state = TX_DATA;
636 yp->tx_len = skb->len - 1; /* strip KISS byte */
637 if (yp->tx_len >= YAM_MAX_FRAME || yp->tx_len < 2) {
642 yp->tx_buf,
643 yp->tx_len);
645 yp->tx_count = 0;
646 yp->tx_crcl = 0x21;
647 yp->tx_crch = 0xf3;
648 yp->tx_state = TX_DATA;
652 b = yp->tx_buf[yp->tx_count++];
654 temp = yp->tx_crcl;
655 yp->tx_crcl = chktabl[temp] ^ yp->tx_crch;
656 yp->tx_crch = chktabh[temp] ^ b;
657 if (yp->tx_count >= yp->tx_len) {
658 yp->tx_state = TX_CRC1;
662 yp->tx_crch = chktabl[yp->tx_crcl] ^ yp->tx_crch;
663 yp->tx_crcl = chktabh[yp->tx_crcl] ^ chktabl[yp->tx_crch] ^ 0xff;
664 outb(yp->tx_crcl, THR(dev->base_addr));
665 yp->tx_state = TX_CRC2;
668 outb(chktabh[yp->tx_crch] ^ 0xFF, THR(dev->base_addr));
669 if (skb_queue_empty(&yp->send_queue)) {
670 yp->tx_count = (yp->bitrate * yp->txtail) / 8000;
671 if (yp->dupmode == 2)
672 yp->tx_count += (yp->bitrate * yp->holdd) / 8;
673 if (yp->tx_count == 0)
674 yp->tx_count = 1;
675 yp->tx_state = TX_TAIL;
677 yp->tx_count = 1;
678 yp->tx_state = TX_HEAD;
680 ++yp->stats.tx_packets;
683 if (--yp->tx_count <= 0) {
684 yp->tx_state = TX_OFF;
698 struct yam_port *yp;
706 yp = netdev_priv(dev);
719 ++yp->stats.rx_fifo_errors;
721 yp->dcd = (msr & RX_DCD) ? 1 : 0;
729 ++yp->nb_mdint;
730 yam_tx_byte(dev, yp);
733 ++yp->nb_rxint;
736 yam_rx_flag(dev, yp);
738 yam_rx_byte(dev, yp, rxb);
766 const struct yam_port *yp = netdev_priv(dev);
770 seq_printf(seq, " Speed %u\n", yp->bitrate);
771 seq_printf(seq, " IoBase 0x%x\n", yp->iobase);
772 seq_printf(seq, " BaudRate %u\n", yp->baudrate);
773 seq_printf(seq, " IRQ %u\n", yp->irq);
774 seq_printf(seq, " TxState %u\n", yp->tx_state);
775 seq_printf(seq, " Duplex %u\n", yp->dupmode);
776 seq_printf(seq, " HoldDly %u\n", yp->holdd);
777 seq_printf(seq, " TxDelay %u\n", yp->txd);
778 seq_printf(seq, " TxTail %u\n", yp->txtail);
779 seq_printf(seq, " SlotTime %u\n", yp->slot);
780 seq_printf(seq, " Persist %u\n", yp->pers);
781 seq_printf(seq, " TxFrames %lu\n", yp->stats.tx_packets);
782 seq_printf(seq, " RxFrames %lu\n", yp->stats.rx_packets);
783 seq_printf(seq, " TxInt %u\n", yp->nb_mdint);
784 seq_printf(seq, " RxInt %u\n", yp->nb_rxint);
785 seq_printf(seq, " RxOver %lu\n", yp->stats.rx_fifo_errors);
817 struct yam_port *yp;
822 yp = netdev_priv(dev);
823 if (yp->magic != YAM_MAGIC)
830 return &yp->stats;
837 struct yam_port *yp = netdev_priv(dev);
844 if (!dev || !yp->bitrate)
860 if (fpga_download(dev->base_addr, yp->bitrate)) {
876 yp->slotcnt = yp->slot / 10;
881 struct yam_port *yp = netdev_priv(dev);
883 yp->stats.rx_fifo_errors = 0;
900 struct yam_port *yp = netdev_priv(dev);
914 while ((skb = skb_dequeue(&yp->send_queue)))
926 struct yam_port *yp = netdev_priv(dev);
934 if (yp->magic != YAM_MAGIC)
982 yp->iobase = yi.cfg.iobase;
988 yp->irq = yi.cfg.irq;
994 yp->bitrate = yi.cfg.bitrate;
999 yp->baudrate = yi.cfg.baudrate;
1004 yp->dupmode = yi.cfg.mode;
1009 yp->holdd = yi.cfg.holddly;
1014 yp->txd = yi.cfg.txdelay;
1019 yp->txtail = yi.cfg.txtail;
1024 yp->pers = yi.cfg.persist;
1029 yp->slot = yi.cfg.slottime;
1030 yp->slotcnt = yp->slot / 10;
1036 yi.cfg.iobase = yp->iobase;
1037 yi.cfg.irq = yp->irq;
1038 yi.cfg.bitrate = yp->bitrate;
1039 yi.cfg.baudrate = yp->baudrate;
1040 yi.cfg.mode = yp->dupmode;
1041 yi.cfg.txdelay = yp->txd;
1042 yi.cfg.holddly = yp->holdd;
1043 yi.cfg.txtail = yp->txtail;
1044 yi.cfg.persist = yp->pers;
1045 yi.cfg.slottime = yp->slot;
1073 struct yam_port *yp = netdev_priv(dev);
1075 yp->magic = YAM_MAGIC;
1076 yp->bitrate = DEFAULT_BITRATE;
1077 yp->baudrate = DEFAULT_BITRATE * 2;
1078 yp->iobase = 0;
1079 yp->irq = 0;
1080 yp->dupmode = 0;
1081 yp->holdd = DEFAULT_HOLDD;
1082 yp->txd = DEFAULT_TXD;
1083 yp->txtail = DEFAULT_TXTAIL;
1084 yp->slot = DEFAULT_SLOT;
1085 yp->pers = DEFAULT_PERS;
1086 yp->dev = dev;
1088 dev->base_addr = yp->iobase;
1089 dev->irq = yp->irq;
1097 skb_queue_head_init(&yp->send_queue);