Lines Matching refs:yp

462 	struct yam_port *yp = netdev_priv(dev);  in yam_set_uart()  local
463 int divisor = 115200 / yp->baudrate; in yam_set_uart()
528 static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp) in yam_rx_flag() argument
530 if (yp->dcd && yp->rx_len >= 3 && yp->rx_len < YAM_MAX_FRAME) { in yam_rx_flag()
531 int pkt_len = yp->rx_len - 2 + 1; /* -CRC + kiss */ in yam_rx_flag()
534 if ((yp->rx_crch & yp->rx_crcl) != 0xFF) { in yam_rx_flag()
544 memcpy(cp, yp->rx_buf, pkt_len - 1); in yam_rx_flag()
551 yp->rx_len = 0; in yam_rx_flag()
552 yp->rx_crcl = 0x21; in yam_rx_flag()
553 yp->rx_crch = 0xf3; in yam_rx_flag()
556 static inline void yam_rx_byte(struct net_device *dev, struct yam_port *yp, unsigned char rxb) in yam_rx_byte() argument
558 if (yp->rx_len < YAM_MAX_FRAME) { in yam_rx_byte()
559 unsigned char c = yp->rx_crcl; in yam_rx_byte()
560 yp->rx_crcl = (chktabl[c] ^ yp->rx_crch); in yam_rx_byte()
561 yp->rx_crch = (chktabh[c] ^ rxb); in yam_rx_byte()
562 yp->rx_buf[yp->rx_len++] = rxb; in yam_rx_byte()
583 struct yam_port *yp = netdev_priv(dev); in yam_send_packet() local
588 skb_queue_tail(&yp->send_queue, skb); in yam_send_packet()
593 static void yam_start_tx(struct net_device *dev, struct yam_port *yp) in yam_start_tx() argument
595 if ((yp->tx_state == TX_TAIL) || (yp->txd == 0)) in yam_start_tx()
596 yp->tx_count = 1; in yam_start_tx()
598 yp->tx_count = (yp->bitrate * yp->txd) / 8000; in yam_start_tx()
599 yp->tx_state = TX_HEAD; in yam_start_tx()
605 struct yam_port *yp = netdev_priv(dev); in yam_arbitrate() local
607 if (yp->magic != YAM_MAGIC || yp->tx_state != TX_OFF || in yam_arbitrate()
608 skb_queue_empty(&yp->send_queue)) in yam_arbitrate()
612 if (yp->dupmode) { in yam_arbitrate()
614 yam_start_tx(dev, yp); in yam_arbitrate()
617 if (yp->dcd) { in yam_arbitrate()
619 yp->slotcnt = yp->slot / 10; in yam_arbitrate()
623 if ((--yp->slotcnt) > 0) in yam_arbitrate()
626 yp->slotcnt = yp->slot / 10; in yam_arbitrate()
629 if (get_random_u8() > yp->pers) in yam_arbitrate()
632 yam_start_tx(dev, yp); in yam_arbitrate()
648 static void yam_tx_byte(struct net_device *dev, struct yam_port *yp) in yam_tx_byte() argument
653 switch (yp->tx_state) { in yam_tx_byte()
657 if (--yp->tx_count <= 0) { in yam_tx_byte()
658 if (!(skb = skb_dequeue(&yp->send_queue))) { in yam_tx_byte()
660 yp->tx_state = TX_OFF; in yam_tx_byte()
663 yp->tx_state = TX_DATA; in yam_tx_byte()
669 yp->tx_len = skb->len - 1; /* strip KISS byte */ in yam_tx_byte()
670 if (yp->tx_len >= YAM_MAX_FRAME || yp->tx_len < 2) { in yam_tx_byte()
675 yp->tx_buf, in yam_tx_byte()
676 yp->tx_len); in yam_tx_byte()
678 yp->tx_count = 0; in yam_tx_byte()
679 yp->tx_crcl = 0x21; in yam_tx_byte()
680 yp->tx_crch = 0xf3; in yam_tx_byte()
681 yp->tx_state = TX_DATA; in yam_tx_byte()
685 b = yp->tx_buf[yp->tx_count++]; in yam_tx_byte()
687 temp = yp->tx_crcl; in yam_tx_byte()
688 yp->tx_crcl = chktabl[temp] ^ yp->tx_crch; in yam_tx_byte()
689 yp->tx_crch = chktabh[temp] ^ b; in yam_tx_byte()
690 if (yp->tx_count >= yp->tx_len) { in yam_tx_byte()
691 yp->tx_state = TX_CRC1; in yam_tx_byte()
695 yp->tx_crch = chktabl[yp->tx_crcl] ^ yp->tx_crch; in yam_tx_byte()
696 yp->tx_crcl = chktabh[yp->tx_crcl] ^ chktabl[yp->tx_crch] ^ 0xff; in yam_tx_byte()
697 outb(yp->tx_crcl, THR(dev->base_addr)); in yam_tx_byte()
698 yp->tx_state = TX_CRC2; in yam_tx_byte()
701 outb(chktabh[yp->tx_crch] ^ 0xFF, THR(dev->base_addr)); in yam_tx_byte()
702 if (skb_queue_empty(&yp->send_queue)) { in yam_tx_byte()
703 yp->tx_count = (yp->bitrate * yp->txtail) / 8000; in yam_tx_byte()
704 if (yp->dupmode == 2) in yam_tx_byte()
705 yp->tx_count += (yp->bitrate * yp->holdd) / 8; in yam_tx_byte()
706 if (yp->tx_count == 0) in yam_tx_byte()
707 yp->tx_count = 1; in yam_tx_byte()
708 yp->tx_state = TX_TAIL; in yam_tx_byte()
710 yp->tx_count = 1; in yam_tx_byte()
711 yp->tx_state = TX_HEAD; in yam_tx_byte()
716 if (--yp->tx_count <= 0) { in yam_tx_byte()
717 yp->tx_state = TX_OFF; in yam_tx_byte()
731 struct yam_port *yp; in yam_interrupt() local
739 yp = netdev_priv(dev); in yam_interrupt()
754 yp->dcd = (msr & RX_DCD) ? 1 : 0; in yam_interrupt()
762 ++yp->nb_mdint; in yam_interrupt()
763 yam_tx_byte(dev, yp); in yam_interrupt()
766 ++yp->nb_rxint; in yam_interrupt()
769 yam_rx_flag(dev, yp); in yam_interrupt()
771 yam_rx_byte(dev, yp, rxb); in yam_interrupt()
799 const struct yam_port *yp = netdev_priv(dev); in yam_seq_show() local
803 seq_printf(seq, " Speed %u\n", yp->bitrate); in yam_seq_show()
804 seq_printf(seq, " IoBase 0x%x\n", yp->iobase); in yam_seq_show()
805 seq_printf(seq, " BaudRate %u\n", yp->baudrate); in yam_seq_show()
806 seq_printf(seq, " IRQ %u\n", yp->irq); in yam_seq_show()
807 seq_printf(seq, " TxState %u\n", yp->tx_state); in yam_seq_show()
808 seq_printf(seq, " Duplex %u\n", yp->dupmode); in yam_seq_show()
809 seq_printf(seq, " HoldDly %u\n", yp->holdd); in yam_seq_show()
810 seq_printf(seq, " TxDelay %u\n", yp->txd); in yam_seq_show()
811 seq_printf(seq, " TxTail %u\n", yp->txtail); in yam_seq_show()
812 seq_printf(seq, " SlotTime %u\n", yp->slot); in yam_seq_show()
813 seq_printf(seq, " Persist %u\n", yp->pers); in yam_seq_show()
816 seq_printf(seq, " TxInt %u\n", yp->nb_mdint); in yam_seq_show()
817 seq_printf(seq, " RxInt %u\n", yp->nb_rxint); in yam_seq_show()
836 struct yam_port *yp = netdev_priv(dev); in yam_open() local
843 if (!yp->bitrate) in yam_open()
859 if (fpga_download(dev->base_addr, yp->bitrate)) { in yam_open()
875 yp->slotcnt = yp->slot / 10; in yam_open()
899 struct yam_port *yp = netdev_priv(dev); in yam_close() local
913 while ((skb = skb_dequeue(&yp->send_queue))) in yam_close()
925 struct yam_port *yp = netdev_priv(dev); in yam_siocdevprivate() local
933 if (yp->magic != YAM_MAGIC) in yam_siocdevprivate()
980 yp->iobase = yi.cfg.iobase; in yam_siocdevprivate()
986 yp->irq = yi.cfg.irq; in yam_siocdevprivate()
992 yp->bitrate = yi.cfg.bitrate; in yam_siocdevprivate()
997 yp->baudrate = yi.cfg.baudrate; in yam_siocdevprivate()
1002 yp->dupmode = yi.cfg.mode; in yam_siocdevprivate()
1007 yp->holdd = yi.cfg.holddly; in yam_siocdevprivate()
1012 yp->txd = yi.cfg.txdelay; in yam_siocdevprivate()
1017 yp->txtail = yi.cfg.txtail; in yam_siocdevprivate()
1022 yp->pers = yi.cfg.persist; in yam_siocdevprivate()
1027 yp->slot = yi.cfg.slottime; in yam_siocdevprivate()
1028 yp->slotcnt = yp->slot / 10; in yam_siocdevprivate()
1035 yi.cfg.iobase = yp->iobase; in yam_siocdevprivate()
1036 yi.cfg.irq = yp->irq; in yam_siocdevprivate()
1037 yi.cfg.bitrate = yp->bitrate; in yam_siocdevprivate()
1038 yi.cfg.baudrate = yp->baudrate; in yam_siocdevprivate()
1039 yi.cfg.mode = yp->dupmode; in yam_siocdevprivate()
1040 yi.cfg.txdelay = yp->txd; in yam_siocdevprivate()
1041 yi.cfg.holddly = yp->holdd; in yam_siocdevprivate()
1042 yi.cfg.txtail = yp->txtail; in yam_siocdevprivate()
1043 yi.cfg.persist = yp->pers; in yam_siocdevprivate()
1044 yi.cfg.slottime = yp->slot; in yam_siocdevprivate()
1080 struct yam_port *yp = netdev_priv(dev); in yam_setup() local
1082 yp->magic = YAM_MAGIC; in yam_setup()
1083 yp->bitrate = DEFAULT_BITRATE; in yam_setup()
1084 yp->baudrate = DEFAULT_BITRATE * 2; in yam_setup()
1085 yp->iobase = 0; in yam_setup()
1086 yp->irq = 0; in yam_setup()
1087 yp->dupmode = 0; in yam_setup()
1088 yp->holdd = DEFAULT_HOLDD; in yam_setup()
1089 yp->txd = DEFAULT_TXD; in yam_setup()
1090 yp->txtail = DEFAULT_TXTAIL; in yam_setup()
1091 yp->slot = DEFAULT_SLOT; in yam_setup()
1092 yp->pers = DEFAULT_PERS; in yam_setup()
1093 yp->dev = dev; in yam_setup()
1095 dev->base_addr = yp->iobase; in yam_setup()
1096 dev->irq = yp->irq; in yam_setup()
1098 skb_queue_head_init(&yp->send_queue); in yam_setup()