SocketCAN Driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux