zephyr/drivers/can
Henrik Brix Andersen 3436c93387 drivers: can: remove run-time RTR filtering, add build-time RTR filter
A growing number of CAN controllers do not have support for individual RX
hardware filters based on the Remote Transmission Request (RTR) bit. This
leads to various work-arounds on the driver level mixing hardware and
software filtering.

As the use of RTR frames is discouraged by CAN in Automation (CiA) - and
not even supported by newer standards, e.g. CAN FD - this often leads to
unnecessary overhead, added complexity, and worst-case to non-portable
behavior between various CAN controller drivers.

Instead, move to a simpler approach where the ability to accept/reject RTR
frames is globally configured via Kconfig. By default, all incoming RTR
frames are rejected at the driver level, a setting which can be supported
in hardware by most in-tree CAN controllers drivers.

Legacy applications or protocol implementations, where RTR reception is
required, can now select CONFIG_CAN_ACCEPT_RTR to accept incoming RTR
frames matching added CAN filters. These applications or protocols will
need to distinguish between RTR and data frames in their respective CAN RX
frame handling routines.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-01-21 11:00:31 +01:00
..
transceiver drivers: gpio: use gpio_is_ready_dt helper function 2023-08-28 08:48:35 -05:00
can_common.c drivers: can: calculate a default SJW value 2023-09-28 16:28:56 +02:00
can_esp32_twai.c drivers: can: sja1000: use common config and data structures 2024-01-19 09:45:29 +01:00
can_fake.c drivers: fake: now just check for CONFIG_ZTEST 2023-10-20 15:04:29 +02:00
can_handlers.c drivers: can: Fix Z_SYSCALL_OBJ->K_SYSCALL_OBJ 2023-11-03 16:05:01 -05:00
can_kvaser_pci.c drivers: can: switch to CAN_DEVICE_DT_INST_DEFINE for remaining drivers 2023-09-22 08:37:05 -05:00
can_loopback.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_mcan.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_mcp251xfd.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_mcp251xfd.h drivers: can: mcp251xfd: flexcan: use common config and data structures 2024-01-19 09:45:29 +01:00
can_mcp2515.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_mcp2515.h drivers: can: mcp2515: flexcan: use common config and data structures 2024-01-19 09:45:29 +01:00
can_mcux_flexcan.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_mcux_mcan.c drivers: can: nxp: mcan: use named IRQs 2024-01-09 18:28:30 +01:00
can_native_linux.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_native_linux_adapt.c drivers can_native_linux: Avoid using ssize 2024-01-15 21:59:56 +01:00
can_native_linux_adapt.h drivers can_native_linux: Avoid using ssize 2024-01-15 21:59:56 +01:00
can_numaker.c drivers: can: nuvoton: numaker: fix init function reference 2024-01-09 18:28:30 +01:00
can_nxp_s32_canxl.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_rcar.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_sam.c drivers: can: bosch: mcan: use int0 and int1 as interrupt names 2024-01-09 18:28:30 +01:00
can_sam0.c drivers: can: bosch: mcan: use int0 and int1 as interrupt names 2024-01-09 18:28:30 +01:00
can_shell.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_sja1000.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_sja1000_priv.h drivers: can: sja1000: add CAN statistics support 2023-10-23 18:20:23 +02:00
can_stm32_bxcan.c drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
can_stm32_fdcan.c drivers: can: bosch: mcan: use int0 and int1 as interrupt names 2024-01-09 18:28:30 +01:00
can_stm32h7_fdcan.c drivers: can: can_stm32h7_fdcan: add device fail on invalid fed clock value 2024-01-18 11:03:21 +01:00
can_tcan4x5x.c drivers: can: fix thread function signatures 2023-10-30 12:24:34 +01:00
CMakeLists.txt drivers: can: drop POSIX from the native Linux SocketCAN driver name 2023-12-12 14:28:26 +00:00
Kconfig drivers: can: remove run-time RTR filtering, add build-time RTR filter 2024-01-21 11:00:31 +01:00
Kconfig.esp32 drivers: can: add ESP32 TWAI CAN controller driver 2022-07-30 17:32:04 +01:00
Kconfig.fake drivers: can: remove CAN_HAS_CANFD Kconfig helper 2023-01-25 15:00:39 +00:00
Kconfig.kvaser drivers: can: add driver for the Kvaser PCIcan CAN controller PCI card 2022-11-01 15:22:31 -04:00
Kconfig.loopback drivers: can: remove CAN_HAS_CANFD Kconfig helper 2023-01-25 15:00:39 +00:00
Kconfig.mcan drivers: can: unify spelling of CAN Flexible Data-rate abbreviation 2023-11-01 11:17:17 +00:00
Kconfig.mcp251xfd drivers: can: mcp251xfd: Increase max filters and change filter usage type 2023-11-20 09:25:08 +01:00
Kconfig.mcp2515 drivers: can: mcp2515: increase default stack size 2023-06-02 09:43:16 +02:00
Kconfig.mcux drivers: can: flexcan: add support for S32K1xx 2024-01-08 08:30:49 -06:00
Kconfig.native_linux drivers: can: drop POSIX from the native Linux SocketCAN driver name 2023-12-12 14:28:26 +00:00
Kconfig.numaker drivers: can: unify spelling of CAN Flexible Data-rate abbreviation 2023-11-01 11:17:17 +00:00
Kconfig.nxp_s32 drivers: nxp_s32_canxl: add support RX FIFO 2024-01-16 20:50:49 -05:00
Kconfig.rcar drivers: can: Update drivers to use devicetree Kconfig symbol 2022-07-21 06:02:28 -05:00
Kconfig.sam drivers: can: sam: do not select cache management 2023-07-31 19:38:22 +00:00
Kconfig.sam0 sam: can: CAN driver for SAM0 socs 2023-05-22 08:03:58 +00:00
Kconfig.sja1000 drivers: can: add NXP SJA1000 common driver backend 2022-07-30 17:32:04 +01:00
Kconfig.stm32 drivers: can: stm32h7: fdcan: rename driver to match reference manuals 2023-08-16 13:03:00 +02:00
Kconfig.tcan4x5x drivers: can: add tcan4x5x CAN controller driver 2023-09-11 19:55:44 +02:00