Skip to content

Commit 5a19143

Browse files
Haibo Chenmarckleinebudde
authored andcommitted
can: flexcan: disable transceiver during system PM
During system PM, if no wakeup requirement, disable transceiver to save power. Fixes: 4de349e ("can: flexcan: fix resume function") Cc: [email protected] Reviewed-by: Frank Li <[email protected]> Signed-off-by: Haibo Chen <[email protected]> Link: https://patch.msgid.link/[email protected] [mkl: add newlines] Signed-off-by: Marc Kleine-Budde <[email protected]>
1 parent fd99d6e commit 5a19143

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

drivers/net/can/flexcan/flexcan-core.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2260,6 +2260,10 @@ static int __maybe_unused flexcan_suspend(struct device *device)
22602260

22612261
flexcan_chip_interrupts_disable(dev);
22622262

2263+
err = flexcan_transceiver_disable(priv);
2264+
if (err)
2265+
return err;
2266+
22632267
err = pinctrl_pm_select_sleep_state(device);
22642268
if (err)
22652269
return err;
@@ -2292,10 +2296,16 @@ static int __maybe_unused flexcan_resume(struct device *device)
22922296
if (err)
22932297
return err;
22942298

2295-
err = flexcan_chip_start(dev);
2299+
err = flexcan_transceiver_enable(priv);
22962300
if (err)
22972301
return err;
22982302

2303+
err = flexcan_chip_start(dev);
2304+
if (err) {
2305+
flexcan_transceiver_disable(priv);
2306+
return err;
2307+
}
2308+
22992309
flexcan_chip_interrupts_enable(dev);
23002310
}
23012311

0 commit comments

Comments
 (0)