The purpose of this patch is to introduce a new CAN driver to support the esd GmbH 402 family of CAN interface boards. The hardware design is based on a CAN controller implemented in a FPGA attached to a PCIe link. More information on these boards can be found following the links included in the commit message. This patch supports all boards but will operate the CAN-FD capable boards only in Classic-CAN mode. The CAN-FD support will be added when the initial patch has stabilized. The patch is based on the linux-can-next testing branch. The patch is uses the previous work of my former colleague: Link: https://lore.kernel.org/linux-can/1426592308-23817-1-git-send-email-thomas.koerper@xxxxxx/ *Note*: scripts/checkpatch.pl still emits the following warnings: 1.esd402_pci.c:293: Still prints the non-hashed virtual address for debug purposes with pci_err(). This is done only on fatal initialization failure during modprobe and seems sensible in this case to debug the error. This will never occur in normal operation. 2.esdacc.h:269: The irq_cnt pointer is still declared volatile and this has a reason and is explained in detail in the header referencing the exception noted in volatile-considered-harmful.rst. Changes in v2: - Avoid warning triggered by -Wshift-count-overflow on architectures with 32-bit dma_addr_t. - Fixed Makefile not to build the kernel module always. Doing this renamed esd402_pci.c to esd_402_pci-core.c as recommended by Marc. Stefan Mätje (1): can: esd: add support for esd GmbH PCIe/402 CAN interface family drivers/net/can/Kconfig | 1 + drivers/net/can/Makefile | 1 + drivers/net/can/esd/Kconfig | 12 + drivers/net/can/esd/Makefile | 7 + drivers/net/can/esd/esd_402_pci-core.c | 530 ++++++++++++++++++ drivers/net/can/esd/esdacc.c | 717 +++++++++++++++++++++++++ drivers/net/can/esd/esdacc.h | 394 ++++++++++++++ 7 files changed, 1662 insertions(+) create mode 100644 drivers/net/can/esd/Kconfig create mode 100644 drivers/net/can/esd/Makefile create mode 100644 drivers/net/can/esd/esd_402_pci-core.c create mode 100644 drivers/net/can/esd/esdacc.c create mode 100644 drivers/net/can/esd/esdacc.h base-commit: 8dad5561c13ade87238d9de6dd410b43f7562447 -- 2.25.1