[PATCH v4 0/1] can: ucan: add driver for Theobroma Systems UCAN devices

From: Jakob Unterwurzacher
Date: Tue Apr 03 2018 - 10:35:41 EST


This is v4 of the Theobroma Systems CAN/USB "UCAN" adapter driver
upstreaming effort.

v3 -> v4 changes:
* get rid of a few repeated le16_to_cpu casts by storing the value once
* fix canid masking logic
* drop __func__ from log messages. Use netdev_* where possible,
use UCAN_DRIVER_NAME where not.
* drop device report log output (data is available via ip)
* fix issues catched by sparse

v2 -> v3 changes:
* count error frames as data packets
* use canid_t for all can ids
* use BIT(x) instead of (1 << x)
* use __le16 / __le32 for little-endian fields
* add spinlock around context allocation (fixes a possible race)
* fix comment style
* use WARN_ON return value
* fix state logic bug that did not allow return to ERROR_ACTIVE
* drop echo_index from context_array (not needed)
* rename "tx_contexts" -> "context_array" to prevent confusion
* add __func__ to all errors and warnings, and to info where it made sense

Jakob Unterwurzacher (1):
can: ucan: add driver for Theobroma Systems UCAN devices

Documentation/networking/can_ucan_protocol.rst | 315 +++++
Documentation/networking/index.rst | 1 +
drivers/net/can/usb/Kconfig | 10 +
drivers/net/can/usb/Makefile | 1 +
drivers/net/can/usb/ucan.c | 1596 ++++++++++++++++++++++++
5 files changed, 1923 insertions(+)
create mode 100644 Documentation/networking/can_ucan_protocol.rst
create mode 100644 drivers/net/can/usb/ucan.c

--
2.11.0

Cc: Martin Elshuber <martin.elshuber@xxxxxxxxxxxxxxxxxxxxx>
Cc: Philipp Tomsich <philipp.tomsich@xxxxxxxxxxxxxxxxxxxxx>
Cc: Wolfgang Grandegger <wg@xxxxxxxxxxxxxx>
Cc: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
Cc: linux-can@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx