OSDN Git Service

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 10553ff..ae8c448 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 c0e8dfa..e8038b3 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;
 };