Re: [PATCH v11 0/2] can: esd: add support for esd GmbH PCIe/402 CAN interface

From: Stefan Mätje
Date: Mon Jan 29 2024 - 07:49:37 EST


Hi,

there has some time passed since my last ping on the mailing list. Is there
anything I can do to pave the path for this patch? Please let me know.

Best regards,
Stefan Mätje



Am Mittwoch, dem 20.12.2023 um 15:25 +0000 schrieb Stefan Mätje:
> Hi,
>
> are there any comments on this patch besides the ones from Vincent?
> Is there anything I can do to pave the path for this patch?
>
> Best regards,
> Stefan
>
> Am Mittwoch, dem 22.11.2023 um 17:02 +0100 schrieb Stefan Mätje:
> > 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 reuses the previous work of my former colleague:
> > Link: https://lore.kernel.org/linux-can/1426592308-23817-1-git-send-email-thomas.koerper@xxxxxx/
> >
> >
> > The patch is based on the linux-can-next main branch.
> >
> > Changed in v11:
> > No functional, only editorial changes due to feedback on v10.
> > - Make lifetime of macros used for hardware timestamp calculation
> > very short by #undef-ing them after use.
> > - Fixed insertion order of new entry in MAINTAINERS file.
> >
> > Changed in v10:
> > Most changes due to feedback by Vincent Mailhol
> > https://lore.kernel.org/linux-can/CAMZ6RqLOAC930GNOU+pWuoi6FgYwFOuFrSyAzVjvE2fuVgy8oA@xxxxxxxxxxxxxx/
> > - Add support for ethtool operations by using default operations
> > provided by the can_dev module for drivers with hardware time
> > stamp support.
> > - Factor out core unregistration into pci402_unregister_core().
> > - Factor out getting next TX fifo index into acc_tx_fifo_next().
> > - Stop counting alloc_can_err_skb() failures in rx_dropped statistic.
> > - Add CAN_ERR_CNT flag in CAN error frames as needed.
> > - Rework function acc_reset_fpga(). To clear I^2C bus enable bit
> > is not necessary after FPGA reset.
> > - Simplify struct acc_bmmsg_rxtxdone layout.
> > - Additional non functional changes due to feedback by Vincent
> > - Some spelling corrections: ESDACC -> esdACC
> >
> > Changes in v9:
> > - Fix returning success error code in case of allocation failure in
> > pci402_probe().
> >
> > Changes in v8:
> > - Rebased to 6.6-rc2 on linux-can-next branch main
> >
> > Changes in v7:
> > - Numerous changes. Find the quoted with inline comments about changes
> > below after the changes list. Stuff that I don't understand and
> > where I have questions is marked with ????.
> > Unfortunately I will be AFK till 28th of November.
> >
> > Changes in v6:
> > - Fixed the statistic handling of RX overrun errors and increase
> > net_device_stats::rx_errors instead of net_device_stats::rx_dropped.
> > - Added a patch to not increase rx statistics when generating a CAN
> > rx error message frame as suggested on the linux-can list.
> > - Added a patch to not not increase rx_bytes statistics for RTR frames
> > as suggested on the linux-can list.
> >
> > The last two patches change the statistics handling from the previous
> > style used in other drivers to the newly suggested one.
> >
> > Changes in v5:
> > - Added the initialization for netdev::dev_port as it is implemented
> > for another CAN driver. See
> > https://lore.kernel.org/linux-can/20211026180553.1953189-1-mailhol.vincent@xxxxxxxxxx/
> >
> > Changes in v4:
> > - Fixed the build failure on ARCH=arm64 that was found by the Intel
> > kernel test robot. See
> > https://lore.kernel.org/linux-can/202109120608.7ZbQXkRh-lkp@xxxxxxxxx/
> >
> > Removed error monitoring code that used GCC's built-in compiler
> > functions for atomic access (__sync_* functions). GCC versions
> > after 9 (tested with "gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04)")
> > don't implement the intrinsic atomic as in-line code but call
> > "__aarch64_ldadd4_acq_rel" on arm64. This GCC support function
> > is not exported by the kernel and therefore the module build
> > post-processing fails.
> >
> > Removed that code because the error monitoring never showed a
> > problem during the development this year.
> >
> >
> > Changes in v3:
> > - Rework the bus-off restart logic in acc_set_mode() and
> > handle_core_msg_errstatechange() to call netif_wake_queue() from the
> > error active event.
> > - Changed pci402_init_card() to allocate a variable sized array of
> > struct acc_core using devm_kcalloc() instead of using a fixed size
> > array in struct pci402_card.
> > - Changed handle_core_msg_txabort() to release aborted TX frames in
> > TX FIFO order.
> > - Fixed the acc_close() function to abort all pending TX request in
> > esdACC controller.
> > - Fixed counting of transmit aborts in handle_core_msg_txabort().
> > It is now done like in can_flush_echo_skb().
> > - Fixed handle_core_msg_buserr() to create error frames including the
> > CAN RX and TX error counters that were missing.
> > - Fixed acc_set_bittiming() neither to touch LOM mode setting of
> > esdACC controller nor to enter or leave RESET mode.
> > The esdACC controller is going active on the CAN bus in acc_open()
> > and is going inactive (RESET mode) again in acc_close().
> > - Rely on the automatic release of memory fetched by devm_kzalloc().
> > But still use devm_irq_free() explicitely to make sure that the
> > interrupt handler is disconnected at that point.
> > This avoids a possible crash in non-MSI mode due to the IRQ
> > triggered by another device on the same PCI IRQ line.
> > - Changed to use DMA map API instead of pci_*_consistent compatibility
> > wrappers.
> > - Fixed stale email references and updated copyright information.
> > - Removed any traces of future CAN-FD support.
> >
> >
> > 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.
> >
> > previous versions:
> > v1 - https://lore.kernel.org/linux-can/20210728203647.15240-1-Stefan.Maetje@xxxxxx/
> > v2 - https://lore.kernel.org/linux-can/20210730173805.3926-1-Stefan.Maetje@xxxxxx/
> > v3 - https://lore.kernel.org/linux-can/20210908164640.23243-1-stefan.maetje@xxxxxx/
> > v4 - https://lore.kernel.org/linux-can/20210916172152.5127-1-stefan.maetje@xxxxxx/
> > v5 - https://lore.kernel.org/linux-can/20211109155326.2608822-1-stefan.maetje@xxxxxx/
> > v6 - https://lore.kernel.org/linux-can/20211201220328.3079270-1-stefan.maetje@xxxxxx/
> > v7 - https://lore.kernel.org/linux-can/20221106224156.3619334-1-stefan.maetje@xxxxxx/
> > v8 - https://lore.kernel.org/linux-can/20231025141635.1459606-1-stefan.maetje@xxxxxx/
> > v9 - https://lore.kernel.org/linux-can/20231107184103.2802678-1-stefan.maetje@xxxxxx/
> > v10 - https://lore.kernel.org/linux-can/20231120175657.4070921-1-stefan.maetje@xxxxxx/
> >
> >
> > Stefan Mätje (2):
> > MAINTAINERS: add Stefan Mätje as maintainer for the esd electronics
> > GmbH PCIe/402 CAN drivers
> > can: esd: add support for esd GmbH PCIe/402 CAN interface family
> >
> > MAINTAINERS | 7 +
> > 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 | 514 +++++++++++++++++
> > drivers/net/can/esd/esdacc.c | 764 +++++++++++++++++++++++++
> > drivers/net/can/esd/esdacc.h | 356 ++++++++++++
> > 8 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: 93e7eca853ca0087b129433630ddd89288d2b8b4