|
@@ -252,7 +252,7 @@ static void peak_usb_write_bulk_callback(struct urb *urb)
|
|
case 0:
|
|
case 0:
|
|
/* transmission complete */
|
|
/* transmission complete */
|
|
netdev->stats.tx_packets++;
|
|
netdev->stats.tx_packets++;
|
|
- netdev->stats.tx_bytes += context->dlc;
|
|
|
|
|
|
+ netdev->stats.tx_bytes += context->data_len;
|
|
|
|
|
|
/* prevent tx timeout */
|
|
/* prevent tx timeout */
|
|
netdev->trans_start = jiffies;
|
|
netdev->trans_start = jiffies;
|
|
@@ -288,7 +288,7 @@ static netdev_tx_t peak_usb_ndo_start_xmit(struct sk_buff *skb,
|
|
struct peak_usb_device *dev = netdev_priv(netdev);
|
|
struct peak_usb_device *dev = netdev_priv(netdev);
|
|
struct peak_tx_urb_context *context = NULL;
|
|
struct peak_tx_urb_context *context = NULL;
|
|
struct net_device_stats *stats = &netdev->stats;
|
|
struct net_device_stats *stats = &netdev->stats;
|
|
- struct can_frame *cf = (struct can_frame *)skb->data;
|
|
|
|
|
|
+ struct canfd_frame *cfd = (struct canfd_frame *)skb->data;
|
|
struct urb *urb;
|
|
struct urb *urb;
|
|
u8 *obuf;
|
|
u8 *obuf;
|
|
int i, err;
|
|
int i, err;
|
|
@@ -321,7 +321,9 @@ static netdev_tx_t peak_usb_ndo_start_xmit(struct sk_buff *skb,
|
|
}
|
|
}
|
|
|
|
|
|
context->echo_index = i;
|
|
context->echo_index = i;
|
|
- context->dlc = cf->can_dlc;
|
|
|
|
|
|
+
|
|
|
|
+ /* Note: this works with CANFD frames too */
|
|
|
|
+ context->data_len = cfd->len;
|
|
|
|
|
|
usb_anchor_urb(urb, &dev->tx_submitted);
|
|
usb_anchor_urb(urb, &dev->tx_submitted);
|
|
|
|
|