Lines Matching refs:odev
720 struct hso_net *odev = netdev_priv(net); in hso_net_open() local
723 if (!odev) { in hso_net_open()
728 odev->skb_tx_buf = NULL; in hso_net_open()
731 spin_lock_irqsave(&odev->net_lock, flags); in hso_net_open()
732 odev->rx_parse_state = WAIT_IP; in hso_net_open()
733 odev->rx_buf_size = 0; in hso_net_open()
734 odev->rx_buf_missing = sizeof(struct iphdr); in hso_net_open()
735 spin_unlock_irqrestore(&odev->net_lock, flags); in hso_net_open()
738 set_bit(HSO_NET_RUNNING, &odev->flags); in hso_net_open()
739 hso_start_net_device(odev->parent); in hso_net_open()
750 struct hso_net *odev = netdev_priv(net); in hso_net_close() local
755 clear_bit(HSO_NET_RUNNING, &odev->flags); in hso_net_close()
757 hso_stop_net_device(odev->parent); in hso_net_close()
766 struct hso_net *odev = urb->context; in write_bulk_callback() local
770 if (!odev || !test_bit(HSO_NET_RUNNING, &odev->flags)) { in write_bulk_callback()
776 if (!netif_device_present(odev->net)) { in write_bulk_callback()
785 handle_usb_error(status, __func__, odev->parent); in write_bulk_callback()
787 hso_put_activity(odev->parent); in write_bulk_callback()
790 netif_wake_queue(odev->net); in write_bulk_callback()
797 struct hso_net *odev = netdev_priv(net); in hso_net_start_xmit() local
802 if (hso_get_activity(odev->parent) == -EAGAIN) { in hso_net_start_xmit()
803 odev->skb_tx_buf = skb; in hso_net_start_xmit()
810 memcpy(odev->mux_bulk_tx_buf, skb->data, skb->len); in hso_net_start_xmit()
814 usb_fill_bulk_urb(odev->mux_bulk_tx_urb, in hso_net_start_xmit()
815 odev->parent->usb, in hso_net_start_xmit()
816 usb_sndbulkpipe(odev->parent->usb, in hso_net_start_xmit()
817 odev->out_endp-> in hso_net_start_xmit()
819 odev->mux_bulk_tx_buf, skb->len, write_bulk_callback, in hso_net_start_xmit()
820 odev); in hso_net_start_xmit()
823 odev->mux_bulk_tx_urb->transfer_flags |= URB_ZERO_PACKET; in hso_net_start_xmit()
826 result = usb_submit_urb(odev->mux_bulk_tx_urb, GFP_ATOMIC); in hso_net_start_xmit()
828 dev_warn(&odev->parent->interface->dev, in hso_net_start_xmit()
848 struct hso_net *odev = netdev_priv(net); in hso_net_tx_timeout() local
850 if (!odev) in hso_net_tx_timeout()
857 if (odev->mux_bulk_tx_urb && in hso_net_tx_timeout()
858 (odev->mux_bulk_tx_urb->status == -EINPROGRESS)) in hso_net_tx_timeout()
859 usb_unlink_urb(odev->mux_bulk_tx_urb); in hso_net_tx_timeout()
866 static void packetizeRx(struct hso_net *odev, unsigned char *ip_pkt, in packetizeRx() argument
879 switch (odev->rx_parse_state) { in packetizeRx()
885 odev->rx_buf_missing) ? count : odev-> in packetizeRx()
888 memcpy(((unsigned char *)(&odev->rx_ip_hdr)) + in packetizeRx()
889 odev->rx_buf_size, ip_pkt + buffer_offset, in packetizeRx()
892 odev->rx_buf_size += temp_bytes; in packetizeRx()
894 odev->rx_buf_missing -= temp_bytes; in packetizeRx()
897 if (!odev->rx_buf_missing) { in packetizeRx()
900 frame_len = ntohs(odev->rx_ip_hdr.tot_len); in packetizeRx()
904 dev_err(&odev->net->dev, in packetizeRx()
907 odev->rx_parse_state = WAIT_SYNC; in packetizeRx()
911 odev->skb_rx_buf = netdev_alloc_skb(odev->net, in packetizeRx()
913 if (!odev->skb_rx_buf) { in packetizeRx()
916 odev->rx_parse_state = WAIT_SYNC; in packetizeRx()
923 skb_put(odev->skb_rx_buf, in packetizeRx()
925 memcpy(tmp_rx_buf, (char *)&(odev->rx_ip_hdr), in packetizeRx()
929 odev->rx_buf_size = sizeof(struct iphdr); in packetizeRx()
932 odev->rx_buf_missing = in packetizeRx()
934 odev->rx_parse_state = WAIT_DATA; in packetizeRx()
939 temp_bytes = (count < odev->rx_buf_missing) in packetizeRx()
940 ? count : odev->rx_buf_missing; in packetizeRx()
945 tmp_rx_buf = skb_put(odev->skb_rx_buf, temp_bytes); in packetizeRx()
948 odev->rx_buf_missing -= temp_bytes; in packetizeRx()
951 odev->rx_buf_size += temp_bytes; in packetizeRx()
952 if (!odev->rx_buf_missing) { in packetizeRx()
955 odev->skb_rx_buf->protocol = cpu_to_be16(ETH_P_IP); in packetizeRx()
956 skb_reset_mac_header(odev->skb_rx_buf); in packetizeRx()
959 netif_rx(odev->skb_rx_buf); in packetizeRx()
961 odev->skb_rx_buf = NULL; in packetizeRx()
964 odev->net->stats.rx_packets++; in packetizeRx()
966 odev->net->stats.rx_bytes += odev->rx_buf_size; in packetizeRx()
968 odev->rx_buf_size = 0; in packetizeRx()
969 odev->rx_buf_missing = sizeof(struct iphdr); in packetizeRx()
970 odev->rx_parse_state = WAIT_IP; in packetizeRx()
987 if (odev->rx_parse_state == WAIT_SYNC) { in packetizeRx()
988 odev->rx_parse_state = WAIT_IP; in packetizeRx()
989 odev->rx_buf_size = 0; in packetizeRx()
990 odev->rx_buf_missing = sizeof(struct iphdr); in packetizeRx()
1010 struct hso_net *odev = urb->context; in read_bulk_callback() local
1017 handle_usb_error(status, __func__, odev->parent); in read_bulk_callback()
1022 if (!odev || !test_bit(HSO_NET_RUNNING, &odev->flags)) { in read_bulk_callback()
1028 net = odev->net; in read_bulk_callback()
1035 if (odev->parent->port_spec & HSO_INFO_CRC_BUG) in read_bulk_callback()
1036 fix_crc_bug(urb, odev->in_endp->wMaxPacketSize); in read_bulk_callback()
1042 spin_lock(&odev->net_lock); in read_bulk_callback()
1043 packetizeRx(odev, urb->transfer_buffer, urb->actual_length, in read_bulk_callback()
1046 spin_unlock(&odev->net_lock); in read_bulk_callback()
1052 odev->parent->usb, in read_bulk_callback()
1053 usb_rcvbulkpipe(odev->parent->usb, in read_bulk_callback()
1054 odev->in_endp-> in read_bulk_callback()
1057 read_bulk_callback, odev); in read_bulk_callback()
1063 dev_warn(&odev->parent->interface->dev, in read_bulk_callback()