Lines Matching refs:yp

477 	struct yam_port *yp = netdev_priv(dev);  in yam_set_uart()  local
478 int divisor = 115200 / yp->baudrate; in yam_set_uart()
543 static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp) in yam_rx_flag() argument
545 if (yp->dcd && yp->rx_len >= 3 && yp->rx_len < YAM_MAX_FRAME) { in yam_rx_flag()
546 int pkt_len = yp->rx_len - 2 + 1; /* -CRC + kiss */ in yam_rx_flag()
549 if ((yp->rx_crch & yp->rx_crcl) != 0xFF) { in yam_rx_flag()
559 memcpy(cp, yp->rx_buf, pkt_len - 1); in yam_rx_flag()
566 yp->rx_len = 0; in yam_rx_flag()
567 yp->rx_crcl = 0x21; in yam_rx_flag()
568 yp->rx_crch = 0xf3; in yam_rx_flag()
571 static inline void yam_rx_byte(struct net_device *dev, struct yam_port *yp, unsigned char rxb) in yam_rx_byte() argument
573 if (yp->rx_len < YAM_MAX_FRAME) { in yam_rx_byte()
574 unsigned char c = yp->rx_crcl; in yam_rx_byte()
575 yp->rx_crcl = (chktabl[c] ^ yp->rx_crch); in yam_rx_byte()
576 yp->rx_crch = (chktabh[c] ^ rxb); in yam_rx_byte()
577 yp->rx_buf[yp->rx_len++] = rxb; in yam_rx_byte()
598 struct yam_port *yp = netdev_priv(dev); in yam_send_packet() local
603 skb_queue_tail(&yp->send_queue, skb); in yam_send_packet()
608 static void yam_start_tx(struct net_device *dev, struct yam_port *yp) in yam_start_tx() argument
610 if ((yp->tx_state == TX_TAIL) || (yp->txd == 0)) in yam_start_tx()
611 yp->tx_count = 1; in yam_start_tx()
613 yp->tx_count = (yp->bitrate * yp->txd) / 8000; in yam_start_tx()
614 yp->tx_state = TX_HEAD; in yam_start_tx()
620 struct yam_port *yp = netdev_priv(dev); in yam_arbitrate() local
622 if (yp->magic != YAM_MAGIC || yp->tx_state != TX_OFF || in yam_arbitrate()
623 skb_queue_empty(&yp->send_queue)) in yam_arbitrate()
627 if (yp->dupmode) { in yam_arbitrate()
629 yam_start_tx(dev, yp); in yam_arbitrate()
632 if (yp->dcd) { in yam_arbitrate()
634 yp->slotcnt = yp->slot / 10; in yam_arbitrate()
638 if ((--yp->slotcnt) > 0) in yam_arbitrate()
641 yp->slotcnt = yp->slot / 10; in yam_arbitrate()
644 if ((prandom_u32() % 256) > yp->pers) in yam_arbitrate()
647 yam_start_tx(dev, yp); in yam_arbitrate()
663 static void yam_tx_byte(struct net_device *dev, struct yam_port *yp) in yam_tx_byte() argument
668 switch (yp->tx_state) { in yam_tx_byte()
672 if (--yp->tx_count <= 0) { in yam_tx_byte()
673 if (!(skb = skb_dequeue(&yp->send_queue))) { in yam_tx_byte()
675 yp->tx_state = TX_OFF; in yam_tx_byte()
678 yp->tx_state = TX_DATA; in yam_tx_byte()
684 yp->tx_len = skb->len - 1; /* strip KISS byte */ in yam_tx_byte()
685 if (yp->tx_len >= YAM_MAX_FRAME || yp->tx_len < 2) { in yam_tx_byte()
690 yp->tx_buf, in yam_tx_byte()
691 yp->tx_len); in yam_tx_byte()
693 yp->tx_count = 0; in yam_tx_byte()
694 yp->tx_crcl = 0x21; in yam_tx_byte()
695 yp->tx_crch = 0xf3; in yam_tx_byte()
696 yp->tx_state = TX_DATA; in yam_tx_byte()
700 b = yp->tx_buf[yp->tx_count++]; in yam_tx_byte()
702 temp = yp->tx_crcl; in yam_tx_byte()
703 yp->tx_crcl = chktabl[temp] ^ yp->tx_crch; in yam_tx_byte()
704 yp->tx_crch = chktabh[temp] ^ b; in yam_tx_byte()
705 if (yp->tx_count >= yp->tx_len) { in yam_tx_byte()
706 yp->tx_state = TX_CRC1; in yam_tx_byte()
710 yp->tx_crch = chktabl[yp->tx_crcl] ^ yp->tx_crch; in yam_tx_byte()
711 yp->tx_crcl = chktabh[yp->tx_crcl] ^ chktabl[yp->tx_crch] ^ 0xff; in yam_tx_byte()
712 outb(yp->tx_crcl, THR(dev->base_addr)); in yam_tx_byte()
713 yp->tx_state = TX_CRC2; in yam_tx_byte()
716 outb(chktabh[yp->tx_crch] ^ 0xFF, THR(dev->base_addr)); in yam_tx_byte()
717 if (skb_queue_empty(&yp->send_queue)) { in yam_tx_byte()
718 yp->tx_count = (yp->bitrate * yp->txtail) / 8000; in yam_tx_byte()
719 if (yp->dupmode == 2) in yam_tx_byte()
720 yp->tx_count += (yp->bitrate * yp->holdd) / 8; in yam_tx_byte()
721 if (yp->tx_count == 0) in yam_tx_byte()
722 yp->tx_count = 1; in yam_tx_byte()
723 yp->tx_state = TX_TAIL; in yam_tx_byte()
725 yp->tx_count = 1; in yam_tx_byte()
726 yp->tx_state = TX_HEAD; in yam_tx_byte()
731 if (--yp->tx_count <= 0) { in yam_tx_byte()
732 yp->tx_state = TX_OFF; in yam_tx_byte()
746 struct yam_port *yp; in yam_interrupt() local
754 yp = netdev_priv(dev); in yam_interrupt()
769 yp->dcd = (msr & RX_DCD) ? 1 : 0; in yam_interrupt()
777 ++yp->nb_mdint; in yam_interrupt()
778 yam_tx_byte(dev, yp); in yam_interrupt()
781 ++yp->nb_rxint; in yam_interrupt()
784 yam_rx_flag(dev, yp); in yam_interrupt()
786 yam_rx_byte(dev, yp, rxb); in yam_interrupt()
814 const struct yam_port *yp = netdev_priv(dev); in yam_seq_show() local
818 seq_printf(seq, " Speed %u\n", yp->bitrate); in yam_seq_show()
819 seq_printf(seq, " IoBase 0x%x\n", yp->iobase); in yam_seq_show()
820 seq_printf(seq, " BaudRate %u\n", yp->baudrate); in yam_seq_show()
821 seq_printf(seq, " IRQ %u\n", yp->irq); in yam_seq_show()
822 seq_printf(seq, " TxState %u\n", yp->tx_state); in yam_seq_show()
823 seq_printf(seq, " Duplex %u\n", yp->dupmode); in yam_seq_show()
824 seq_printf(seq, " HoldDly %u\n", yp->holdd); in yam_seq_show()
825 seq_printf(seq, " TxDelay %u\n", yp->txd); in yam_seq_show()
826 seq_printf(seq, " TxTail %u\n", yp->txtail); in yam_seq_show()
827 seq_printf(seq, " SlotTime %u\n", yp->slot); in yam_seq_show()
828 seq_printf(seq, " Persist %u\n", yp->pers); in yam_seq_show()
831 seq_printf(seq, " TxInt %u\n", yp->nb_mdint); in yam_seq_show()
832 seq_printf(seq, " RxInt %u\n", yp->nb_rxint); in yam_seq_show()
865 struct yam_port *yp = netdev_priv(dev); in yam_open() local
872 if (!yp->bitrate) in yam_open()
888 if (fpga_download(dev->base_addr, yp->bitrate)) { in yam_open()
904 yp->slotcnt = yp->slot / 10; in yam_open()
928 struct yam_port *yp = netdev_priv(dev); in yam_close() local
942 while ((skb = skb_dequeue(&yp->send_queue))) in yam_close()
954 struct yam_port *yp = netdev_priv(dev); in yam_ioctl() local
962 if (yp->magic != YAM_MAGIC) in yam_ioctl()
1010 yp->iobase = yi.cfg.iobase; in yam_ioctl()
1016 yp->irq = yi.cfg.irq; in yam_ioctl()
1022 yp->bitrate = yi.cfg.bitrate; in yam_ioctl()
1027 yp->baudrate = yi.cfg.baudrate; in yam_ioctl()
1032 yp->dupmode = yi.cfg.mode; in yam_ioctl()
1037 yp->holdd = yi.cfg.holddly; in yam_ioctl()
1042 yp->txd = yi.cfg.txdelay; in yam_ioctl()
1047 yp->txtail = yi.cfg.txtail; in yam_ioctl()
1052 yp->pers = yi.cfg.persist; in yam_ioctl()
1057 yp->slot = yi.cfg.slottime; in yam_ioctl()
1058 yp->slotcnt = yp->slot / 10; in yam_ioctl()
1065 yi.cfg.iobase = yp->iobase; in yam_ioctl()
1066 yi.cfg.irq = yp->irq; in yam_ioctl()
1067 yi.cfg.bitrate = yp->bitrate; in yam_ioctl()
1068 yi.cfg.baudrate = yp->baudrate; in yam_ioctl()
1069 yi.cfg.mode = yp->dupmode; in yam_ioctl()
1070 yi.cfg.txdelay = yp->txd; in yam_ioctl()
1071 yi.cfg.holddly = yp->holdd; in yam_ioctl()
1072 yi.cfg.txtail = yp->txtail; in yam_ioctl()
1073 yi.cfg.persist = yp->pers; in yam_ioctl()
1074 yi.cfg.slottime = yp->slot; in yam_ioctl()
1110 struct yam_port *yp = netdev_priv(dev); in yam_setup() local
1112 yp->magic = YAM_MAGIC; in yam_setup()
1113 yp->bitrate = DEFAULT_BITRATE; in yam_setup()
1114 yp->baudrate = DEFAULT_BITRATE * 2; in yam_setup()
1115 yp->iobase = 0; in yam_setup()
1116 yp->irq = 0; in yam_setup()
1117 yp->dupmode = 0; in yam_setup()
1118 yp->holdd = DEFAULT_HOLDD; in yam_setup()
1119 yp->txd = DEFAULT_TXD; in yam_setup()
1120 yp->txtail = DEFAULT_TXTAIL; in yam_setup()
1121 yp->slot = DEFAULT_SLOT; in yam_setup()
1122 yp->pers = DEFAULT_PERS; in yam_setup()
1123 yp->dev = dev; in yam_setup()
1125 dev->base_addr = yp->iobase; in yam_setup()
1126 dev->irq = yp->irq; in yam_setup()
1128 skb_queue_head_init(&yp->send_queue); in yam_setup()