These patches extend the ems_usb.c driver to support both devices, the classic CAN CPC-USB/ARM7 and the CAN FD CPC-USB/FD. Also support for the listen only mode for CPC-USB/ARM7 was implemented. Most issues given by checkpatch.pl were resolved. Gerhard Uttenthaler (17): can: ems_usb: Fixed warnings given by checkpatch.pl and fixed some outdated comments can: ems_usb: Added defines and product id needed for CPC-USB/FD can: ems_usb: Added CAN FD message representation can: ems_usb: Added struct used for CAN FD initialization can: ems_usb: Replace constant define RX_BUFFER_SIZE by variable bulk_rd_buf_size, because this will have different values for CPC-USB/ARM7 and CPC-USB/FD. For the same reason added a function pointer ems_usb_write_mode. In device probe function added a switch statement to select between CPC-USB/ARM7 and CPC-USB/FD and rearranged initialization sequence accordingly. can: ems_usb: Added listen only mode for CPC-USB/ARM7 and moved evaluation of can.ctrlmode from set_bittiming routine to ems_usb_write_mode_arm7 routine. Wrapped a long line. can: ems_usb: Added CPC_ClearCmdQueue routine to get access to the interface even it is flooded with messages which cannot successfully be sent. Set timestamp to 0 in ems_usb_control_cmd. can: ems_usb: Modified ems_usb_read_bulk_callback to be able to handle also CPC-USB/FD can: ems_usb: For CPC-USB/FD added clock definitions, bittiming constants, set_bittiming functions, bittiming init function and add all that to probe function can: ems_usb: Added receive routine for CAN FD messages and its call in ems_usb_read_bulk_callback can: ems_usb: Added ems_usb_write_mode_fd and its call in device probe routine. Fixed indentation. can: ems_usb: In ems_usb_start_xmit send only bytes with valid content to interface and not the complete buffer. Set first four bytes of buffer to 0. Wrapped long lines. can: ems_usb: Rearrange code in ems_usb_start_xmit to check with can_is_canfd_skb for CAN FD frames. can: ems_usb: Added code to handle CAN FD frames in ems_usb_start_xmit can: ems_usb: In CAN error handling routine checking which CAN controller type is issuing the error can: ems_usb: Added error handling part for CPC-USB/FD. Get some structures packed can: ems_usb: Made another struct packed. Enable CPC-USB/FD by adding it to the drivers device table drivers/net/can/usb/ems_usb.c | 860 +++++++++++++++++++++++++++------- 1 file changed, 681 insertions(+), 179 deletions(-) -- 2.26.2 -- EMS Dr. Thomas Wuensche e.K. Sonnenhang 3 85304 Ilmmuenster HR Ingolstadt, HRA 170106 Phone: +49-8441-490260 Fax : +49-8441-81860 http://www.ems-wuensche.com