can: peak_usb: upgrade core to new struct canfd_frame
authorStephane Grosjean <s.grosjean@peak-system.com>
Fri, 23 Jan 2015 10:31:22 +0000 (11:31 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Wed, 28 Jan 2015 13:47:06 +0000 (14:47 +0100)
Upgrade PEAK-System USB adapters core to the new data structures (names) and
callbacks added for the support of the CANFD extension. This specific patch
includes changes that deal with the new struct canfd_frame.

Signed-off-by: Stephane Grosjean <s.grosjean@peak-system.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/usb/peak_usb/pcan_usb_core.c
drivers/net/can/usb/peak_usb/pcan_usb_core.h

index 10553ffc453f6d5a625a8a9d5e1f1e2359a30633..ae8c448fd4d05cb1bdd63c2b5d2c401b702e1a17 100644 (file)
@@ -252,7 +252,7 @@ static void peak_usb_write_bulk_callback(struct urb *urb)
        case 0:
                /* transmission complete */
                netdev->stats.tx_packets++;
-               netdev->stats.tx_bytes += context->dlc;
+               netdev->stats.tx_bytes += context->data_len;
 
                /* prevent tx timeout */
                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_tx_urb_context *context = NULL;
        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;
        u8 *obuf;
        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->dlc = cf->can_dlc;
+
+       /* Note: this works with CANFD frames too */
+       context->data_len = cfd->len;
 
        usb_anchor_urb(urb, &dev->tx_submitted);
 
index c0e8dfaef526f9e75dda2cde016d1a5744757786..e8038b30bab59d1d9b83381a266c1b48555395d7 100644 (file)
@@ -98,7 +98,7 @@ struct peak_time_ref {
 struct peak_tx_urb_context {
        struct peak_usb_device *dev;
        u32 echo_index;
-       u8 dlc;
+       u8 data_len;
        struct urb *urb;
 };