struct urb *u;
struct ctu_usbcan_usb *dev;
u8 msg[USBCAN_TRANSFER_SIZE];
+ u32 echo_index;
u8 dlc;
struct list_head list_node;
};
stats->tx_packets++;
stats->tx_bytes += m->dlc;
+
+ can_get_echo_skb(m->dev->netdev, m->echo_index);
set_bit(USBCAN_DATA_OK,&m->dev->flags);
usbcan_usb_message_move_list(m->dev, m, &m->dev->tx_ready_list);
m->dlc = (u8) len;
-
-
usbcan_usb_message_move_list(dev, m, &dev->tx_pend_list);
+ can_put_echo_skb(skb, netdev, m->echo_index);
+
/* odeslani */
retval = usb_submit_urb(m->u, GFP_ATOMIC);
if (retval){
u->dev = dev->udev;
m->dev = dev;
+ m->echo_index = i;
+
usb_fill_bulk_urb(u, dev->udev,
usb_sndbulkpipe(dev->udev, dev->bulk_out_endpointAddr),
m->msg, USBCAN_TRANSFER_SIZE, ctu_usbcan_tx_callback, m);