Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'linux-can-next-for-6.9-20240304' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next

Marc Kleine-Budde says:

====================
pull-request: can-next 2024-03-04

this is a pull request of 4 patches for net-next/master.

The 1st patch is by Jimmy Assarsson and adds support for the Leaf v3
to the kvaser_usb driver.

Martin Jocić's patch targets the kvaser_pciefd driver and adds support
for the Kvaser PCIe 8xCAN device.

Followed by a patch by me that adds a missing a cpu_to_le32() to the
gs_usb driver, the change is not critical as the assigned value is 0.

The last patch is also by me and replaces a literal 256 with a proper
define.

linux-can-next-for-6.9-20240304

* tag 'linux-can-next-for-6.9-20240304' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next:
can: mcp251xfd: __mcp251xfd_get_berr_counter(): use CAN_BUS_OFF_THRESHOLD instead of open coding it
can: gs_usb: gs_cmd_reset(): use cpu_to_le32() to assign mode
can: kvaser_pciefd: Add support for Kvaser PCIe 8xCAN
can: kvaser_usb: Add support for Leaf v3
====================

Link: https://lore.kernel.org/r/20240304092051.3631481-1-mkl@pengutronix.de
Signed-off-by: Paolo Abeni <pabeni@redhat.com>

+13 -3
+1
drivers/net/can/Kconfig
··· 169 169 Kvaser Mini PCI Express 1xCAN v3 170 170 Kvaser Mini PCI Express 2xCAN v3 171 171 Kvaser M.2 PCIe 4xCAN 172 + Kvaser PCIe 8xCAN 172 173 173 174 config CAN_SLCAN 174 175 tristate "Serial / USB serial CAN Adaptors (slcan)"
+6 -1
drivers/net/can/kvaser_pciefd.c
··· 27 27 #define KVASER_PCIEFD_BEC_POLL_FREQ (jiffies + msecs_to_jiffies(200)) 28 28 #define KVASER_PCIEFD_MAX_ERR_REP 256U 29 29 #define KVASER_PCIEFD_CAN_TX_MAX_COUNT 17U 30 - #define KVASER_PCIEFD_MAX_CAN_CHANNELS 4UL 30 + #define KVASER_PCIEFD_MAX_CAN_CHANNELS 8UL 31 31 #define KVASER_PCIEFD_DMA_COUNT 2U 32 32 33 33 #define KVASER_PCIEFD_DMA_SIZE (4U * 1024U) ··· 49 49 50 50 /* Xilinx based devices */ 51 51 #define KVASER_PCIEFD_M2_4CAN_DEVICE_ID 0x0017 52 + #define KVASER_PCIEFD_8CAN_DEVICE_ID 0x0019 52 53 53 54 /* Altera SerDes Enable 64-bit DMA address translation */ 54 55 #define KVASER_PCIEFD_ALTERA_DMA_64BIT BIT(0) ··· 495 494 }, 496 495 { 497 496 PCI_DEVICE(KVASER_PCIEFD_VENDOR, KVASER_PCIEFD_M2_4CAN_DEVICE_ID), 497 + .driver_data = (kernel_ulong_t)&kvaser_pciefd_xilinx_driver_data, 498 + }, 499 + { 500 + PCI_DEVICE(KVASER_PCIEFD_VENDOR, KVASER_PCIEFD_8CAN_DEVICE_ID), 498 501 .driver_data = (kernel_ulong_t)&kvaser_pciefd_xilinx_driver_data, 499 502 }, 500 503 {
+1 -1
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
··· 837 837 return err; 838 838 839 839 if (trec & MCP251XFD_REG_TREC_TXBO) 840 - bec->txerr = 256; 840 + bec->txerr = CAN_BUS_OFF_THRESHOLD; 841 841 else 842 842 bec->txerr = FIELD_GET(MCP251XFD_REG_TREC_TEC_MASK, trec); 843 843 bec->rxerr = FIELD_GET(MCP251XFD_REG_TREC_REC_MASK, trec);
+1
drivers/net/can/usb/Kconfig
··· 100 100 - Scania VCI2 (if you have the Kvaser logo on top) 101 101 - Kvaser BlackBird v2 102 102 - Kvaser Leaf Pro HS v2 103 + - Kvaser Leaf v3 103 104 - Kvaser Hybrid CAN/LIN 104 105 - Kvaser Hybrid 2xCAN/LIN 105 106 - Kvaser Hybrid Pro CAN/LIN
+1 -1
drivers/net/can/usb/gs_usb.c
··· 385 385 static int gs_cmd_reset(struct gs_can *dev) 386 386 { 387 387 struct gs_device_mode dm = { 388 - .mode = GS_CAN_MODE_RESET, 388 + .mode = cpu_to_le32(GS_CAN_MODE_RESET), 389 389 }; 390 390 391 391 return usb_control_msg_send(dev->udev, 0, GS_USB_BREQ_MODE,
+3
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c
··· 88 88 #define USB_USBCAN_PRO_4HS_PRODUCT_ID 0x0114 89 89 #define USB_HYBRID_CANLIN_PRODUCT_ID 0x0115 90 90 #define USB_HYBRID_PRO_CANLIN_PRODUCT_ID 0x0116 91 + #define USB_LEAF_V3_PRODUCT_ID 0x0117 91 92 92 93 static const struct kvaser_usb_driver_info kvaser_usb_driver_info_hydra = { 93 94 .quirks = KVASER_USB_QUIRK_HAS_HARDWARE_TIMESTAMP, ··· 235 234 { USB_DEVICE(KVASER_VENDOR_ID, USB_HYBRID_CANLIN_PRODUCT_ID), 236 235 .driver_info = (kernel_ulong_t)&kvaser_usb_driver_info_hydra }, 237 236 { USB_DEVICE(KVASER_VENDOR_ID, USB_HYBRID_PRO_CANLIN_PRODUCT_ID), 237 + .driver_info = (kernel_ulong_t)&kvaser_usb_driver_info_hydra }, 238 + { USB_DEVICE(KVASER_VENDOR_ID, USB_LEAF_V3_PRODUCT_ID), 238 239 .driver_info = (kernel_ulong_t)&kvaser_usb_driver_info_hydra }, 239 240 { } 240 241 };