can: m_can: set init flag earlier in probe
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>
Mon, 7 Oct 2024 08:23:58 +0000 (10:23 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Wed, 18 Dec 2024 08:30:52 +0000 (09:30 +0100)
commitfca2977629f49dee437e217c3fc423b6e0cad98c
treea065e8e4a80665badee59b30069145fc430170e0
parent954a2b40719a21e763a1bba2f0da92347e058fce
can: m_can: set init flag earlier in probe

While an m_can controller usually already has the init flag from a
hardware reset, no such reset happens on the integrated m_can_pci of the
Intel Elkhart Lake. If the CAN controller is found in an active state,
m_can_dev_setup() would fail because m_can_niso_supported() calls
m_can_cccr_update_bits(), which refuses to modify any other configuration
bits when CCCR_INIT is not set.

To avoid this issue, set CCCR_INIT before attempting to modify any other
configuration flags.

Fixes: cd5a46ce6fa6 ("can: m_can: don't enable transceiver when probing")
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Markus Schneider-Pargmann <msp@baylibre.com>
Link: https://patch.msgid.link/e247f331cb72829fcbdfda74f31a59cbad1a6006.1728288535.git.matthias.schiffer@ew.tq-group.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/m_can/m_can.c