Hello! I recently started a project that uses the CAN serial protocol using microcontrollers. I've got an IXXAT CAN-to-USB Compact (V1.0) adapter to help debugging the CAN bus. The manufacturer of this adapter provides the kernel driver and and userspace libraries for Linux, but it uses a custom API (ECI) instead of SocketCAN (and I really need to use SocketCAN). The manufacturer also provides a SocketCAN driver but only for the CAN-to-USB Compact (V2.0), so it doesn't with what I have. I'm thinking in modifying the the SocketCAN driver to support the V1.0 adapter, but I don't have any experience in kernel driver development. I've a solid C knowledge and a lot of experience in firmware development for microcontrollers. Can someone show me where to find relevant information regarding SocketCAN, USB drivers development? I don't know if this challenge is above my skills. I've attached both drivers and a patch for the usb-to-can_v2_socketcan that substitutes the "netdev->trans_start =" deference to "netif_trans_update(netdev);", so you can compile for kernels newer than 4.4. Thanks!
Attachment:
usb-to-can_v2_socketcan.tar.xz
Description: application/xz
>From 76059561a984ef92f19e1babdf42614e99f7719e Mon Sep 17 00:00:00 2001 From: Augusto Fraga Giachero <augustofg96@xxxxxxxxx> Date: Thu, 13 Oct 2016 13:07:14 -0300 Subject: [PATCH 1/1] Patch for newer kernels Solves the compiling errors on 4.6 kernels and newer. --- ixx_usb_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ixx_usb_core.c b/ixx_usb_core.c index 20eb0cf..701f1f0 100644 --- a/ixx_usb_core.c +++ b/ixx_usb_core.c @@ -218,7 +218,7 @@ static void ixxat_usb_write_bulk_callback(struct urb *urb) netdev->stats.tx_bytes += context->dlc; /* prevent tx timeout */ - netdev->trans_start = jiffies; + netif_trans_update(netdev); break; @@ -323,7 +323,7 @@ static netdev_tx_t ixxat_usb_ndo_start_xmit(struct sk_buff *skb, err); } } else { - netdev->trans_start = jiffies; + netif_trans_update(netdev); /* slow down tx path */ if (atomic_read(&dev->active_tx_urbs) >= IXXAT_USB_MAX_TX_URBS) -- 2.10.0
Attachment:
EciDriver.tar.xz
Description: application/xz
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies