Merge patch series "can: support CAN XL"
authorMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 15 Sep 2022 07:13:31 +0000 (09:13 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 15 Sep 2022 07:13:31 +0000 (09:13 +0200)
Oliver Hartkopp <socketcan@hartkopp.net> says:

The CAN with eXtended data Length (CAN XL) is a new CAN protocol with
a 10Mbit/s data transfer with a new physical layer transceiver (for
this data section). CAN XL allows up to 2048 byte of payload and
shares the arbitration principle (11 bit priority) known from
Classical CAN and CAN FD. RTR and 29 bit identifiers are not
implemented in CAN XL.

A short introduction to CAN XL can be found here:
https://www.can-cia.org/can-knowledge/can/can-xl/
https://github.com/linux-can/can-doc/blob/master/presentations/CAN-XL-Intro.pdf

V1: https://lore.kernel.org/all/20220711183426.96446-1-socketcan@hartkopp.net

V2: Major rework after discussion and feedback on Linux-CAN ML
    https://lore.kernel.org/all/20220714160541.2071-1-socketcan@hartkopp.net

- rework of struct canxl_frame
- CANXL_XLF flag is now the switch between CAN XL and CAN/CANFD
- variable length in r/w operations for CAN XL frames
- write CAN XL frame to raw socket enforces size <-> canxl_frame.len sync

V3: Fix length for CAN XL frames inside the sk_buff
    https://lore.kernel.org/all/20220717132730.30295-1-socketcan@hartkopp.net

- extend the CAN_RAW sockopt to handle fixed/truncated read/write operations

V4: Fix patch 5 (can: raw: add CAN XL support)
    https://lore.kernel.org/all/20220719054204.29061-1-socketcan@hartkopp.net

- fix return value (move 'err = -EINVAL' in raw_sendmsg())
- add CAN XL frame handling in can_rcv()
- change comment for CAN_RAW_XL_[RT]X_DYN definition (allow -> enable)

V5: Remove CAN_RAW_XL_[RT]X_DYN definition again
    https://lore.kernel.org/all/20220719112748.3281-1-socketcan@hartkopp.net

- CAN_RAW_XL_[RT]X_DYN (truncated data) feature is now enabled by default
- use CANXL_MIN_DLEN instead of '1' in canxl_frame definition
- add missing 'err = -EINVAL' initialization in raw_sendmsg())

V6: https://lore.kernel.org/all/20220724074402.117394-1-socketcan@hartkopp.net

- rework an separate skb identification and length helpers
- add CANFD_FDF flag in all CAN FD frame structures
- simplify patches for infrastructure and raw sockets
- add vxcan support in virtual CAN interface patch

V7: https://lore.kernel.org/all/20220729154107.1875-1-socketcan@hartkopp.net

- fixed indention as remarked by Marc
- set CANFD_FDF flag when detecting CAN FD frames generated by PF_PACKET
- Allow to use variable CAN XL MTU sizes to enforce real time requirements
  on CAN XL segments (e.g. to support of CAN CiA segmentation concept)

V8: https://lore.kernel.org/all/20220801190010.3344-1-socketcan@hartkopp.net

- fixed typo as remarked by Vincent
- rebased to latest can-next/net-next tree

V9: https://lore.kernel.org/all/20220912170725.120748-1-socketcan@hartkopp.net

- rebased to latest can-next/net-next tree
- updated and extended public available CAN XL documenatation in cover letter
- renamed struct canxl_frame variable cfx to cxl as suggested by Vincent
- Added Acked-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> tag

Link: https://lore.kernel.org/all/20220912170725.120748-1-socketcan@hartkopp.net
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

Trivial merge