linux/drivers/net/can
Biju Das f88ba5098e can: rcar_canfd: Fix CAN-FD mode as default
[ Upstream commit 6d849ff573 ]

The commit 5cff263606 ("can: rcar_canfd: Fix controller mode setting")
has aligned with the flow mentioned in the hardware manual for all SoCs
except R-Car Gen3 and RZ/G2L SoCs. On R-Car Gen4 and RZ/G3E SoCs, due to
the wrong logic in the commit[1] sets the default mode to FD-Only mode
instead of CAN-FD mode.

This patch sets the CAN-FD mode as the default for all SoCs by dropping
the rcar_canfd_set_mode() as some SoC requires mode setting in global
reset mode, and the rest of the SoCs in channel reset mode and update the
rcar_canfd_reset_controller() to take care of these constraints. Moreover,
the RZ/G3E and R-Car Gen4 SoCs support 3 modes compared to 2 modes on the
R-Car Gen3. Use inverted logic in rcar_canfd_reset_controller() to
simplify the code later to support FD-only mode.

[1]
commit 45721c406d ("can: rcar_canfd: Add support for r8a779a0 SoC")

Fixes: 5cff263606 ("can: rcar_canfd: Fix controller mode setting")
Cc: stable@vger.kernel.org
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://patch.msgid.link/20251118123926.193445-1-biju.das.jz@bp.renesas.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
[ adapted to use existing is_gen4() helper and RCANFD_GEN4_FDCFG() macro instead of new ch_interface_mode field and fcbase struct ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-12-07 06:25:02 +09:00
..
c_can can: c_can: Use of_property_present() to test existence of DT property 2025-05-29 11:02:45 +02:00
cc770 can: {cc770,sja1000}_isa: allow building on x86_64 2024-11-04 17:46:06 +01:00
ctucanfd can: ctucanfd: handle skb allocation failure 2025-02-21 14:01:33 +01:00
dev can: netlink: can_changelink(): allow disabling of automatic restart 2025-10-29 14:08:56 +01:00
esd can: esd: acc_start_xmit(): use can_dev_dropped_skb() instead of can_dropped_invalid_skb() 2025-10-29 14:08:54 +01:00
flexcan can: flexcan: add NXP S32G2/S32G3 SoC support 2025-04-20 10:15:18 +02:00
ifi_canfd can: ifi_canfd: ifi_canfd_handle_lec_err(): fix {rx,tx}_errors statistics 2024-12-14 20:03:01 +01:00
m_can can: m_can: fix CAN state in system PM 2025-10-23 16:20:28 +02:00
mscan can: Switch back to struct platform_driver::remove() 2024-09-11 09:37:16 +02:00
peak_canfd can: peak_canfd: Remove setting of RX software timestamp 2024-09-03 15:17:47 -07:00
rcar can: rcar_canfd: Fix CAN-FD mode as default 2025-12-07 06:25:02 +09:00
rockchip can: rockchip-canfd: rkcanfd_start_xmit(): use can_dev_dropped_skb() instead of can_dropped_invalid_skb() 2025-10-29 14:08:54 +01:00
sja1000 can: sja1000: fix max irq loop handling 2025-12-07 06:24:59 +09:00
slcan can: slcan: allow reception of short error messages 2025-05-29 11:03:19 +02:00
softing can: Switch back to struct platform_driver::remove() 2024-09-11 09:37:16 +02:00
spi can: hi311x: fix null pointer dereference when resuming from sleep before interface was enabled 2025-10-12 12:57:17 +02:00
usb can: gs_usb: gs_usb_receive_bulk_callback(): check actual_length before accessing data 2025-12-07 06:24:54 +09:00
at91_can.c can: Switch back to struct platform_driver::remove() 2024-09-11 09:37:16 +02:00
bxcan.c can: bxcan: bxcan_start_xmit(): use can_dev_dropped_skb() instead of can_dropped_invalid_skb() 2025-10-29 14:08:54 +01:00
can327.c tty: use u8 for flags 2023-08-11 21:12:45 +02:00
grcan.c can: Switch back to struct platform_driver::remove() 2024-09-11 09:37:16 +02:00
janz-ican3.c can: Switch back to struct platform_driver::remove() 2024-09-11 09:37:16 +02:00
Kconfig can: rockchip_canfd: add driver for Rockchip CAN-FD controller 2024-09-04 14:41:51 +02:00
kvaser_pciefd.c can: kvaser_pciefd: Store device channel index 2025-08-15 12:13:47 +02:00
Makefile can: rockchip_canfd: add driver for Rockchip CAN-FD controller 2024-09-04 14:41:51 +02:00
sun4i_can.c can: sun4i_can: sun4i_can_interrupt(): fix max irq loop handling 2025-12-07 06:24:59 +09:00
ti_hecc.c Revert "can: ti_hecc: fix -Woverflow compiler warning" 2025-08-28 16:31:05 +02:00
vcan.c net: annotate writes on dev->mtu from ndo_change_mtu() 2024-05-07 16:19:14 -07:00
vxcan.c net: annotate writes on dev->mtu from ndo_change_mtu() 2024-05-07 16:19:14 -07:00
xilinx_can.c can: xilinx_can: xcan_write_frame(): fix use-after-free of transmitted SKB 2025-09-19 16:35:49 +02:00