Commit 5a191431 authored by Haibo Chen's avatar Haibo Chen Committed by Marc Kleine-Budde
Browse files

can: flexcan: disable transceiver during system PM



During system PM, if no wakeup requirement, disable transceiver to
save power.

Fixes: 4de349e7 ("can: flexcan: fix resume function")
Cc: stable@vger.kernel.org
Reviewed-by: default avatarFrank Li <frank.li@nxp.com>
Signed-off-by: default avatarHaibo Chen <haibo.chen@nxp.com>
Link: https://patch.msgid.link/20250314110145.899179-2-haibo.chen@nxp.com


[mkl: add newlines]
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent fd99d6ed
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -2260,6 +2260,10 @@ static int __maybe_unused flexcan_suspend(struct device *device)

			flexcan_chip_interrupts_disable(dev);

			err = flexcan_transceiver_disable(priv);
			if (err)
				return err;

			err = pinctrl_pm_select_sleep_state(device);
			if (err)
				return err;
@@ -2292,10 +2296,16 @@ static int __maybe_unused flexcan_resume(struct device *device)
			if (err)
				return err;

			err = flexcan_chip_start(dev);
			err = flexcan_transceiver_enable(priv);
			if (err)
				return err;

			err = flexcan_chip_start(dev);
			if (err) {
				flexcan_transceiver_disable(priv);
				return err;
			}

			flexcan_chip_interrupts_enable(dev);
		}