can: flexcan: avoid unbalanced pm_runtime_enable warning

Bugzilla: http://bugzilla.redhat.com/2182869

commit 3bc2afcba81275306adfbfca83f38a52858c5940
Author: Haibo Chen <haibo.chen@nxp.com>
Date:   Tue Dec 13 17:43:51 2022 +0800

    can: flexcan: avoid unbalanced pm_runtime_enable warning

    When do suspend/resume, meet the following warning message:
    [   30.028336] flexcan 425b0000.can: Unbalanced pm_runtime_enable!

    Balance the pm_runtime_force_suspend() and pm_runtime_force_resume().

    Fixes: 8cb53b485f18 ("can: flexcan: add auto stop mode for IMX93 to support wakeup")
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Link: https://lore.kernel.org/all/20221213094351.3023858-1-haibo.chen@nxp.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

Signed-off-by: Steve Best <sbest@redhat.com>
This commit is contained in:
Steve Best 2023-03-30 13:34:00 -04:00
parent 4ba4f4f899
commit a8db5fb4e8
1 changed files with 9 additions and 3 deletions

View File

@ -2350,9 +2350,15 @@ static int __maybe_unused flexcan_noirq_resume(struct device *device)
if (netif_running(dev)) {
int err;
err = pm_runtime_force_resume(device);
if (err)
return err;
/* For the wakeup in auto stop mode, no need to gate on the
* clock here, hardware will do this automatically.
*/
if (!(device_may_wakeup(device) &&
priv->devtype_data.quirks & FLEXCAN_QUIRK_AUTO_STOP_MODE)) {
err = pm_runtime_force_resume(device);
if (err)
return err;
}
if (device_may_wakeup(device))
flexcan_enable_wakeup_irq(priv, false);