Added in Cc everyone concerned by the patch as per the broken backport: https://lore.kernel.org/stable/20220405070315.416940927@xxxxxxxxxxxxxxxxxxx/ Daisuke Mizobuchi wrote on Fri, Apr 12, 2024 at 02:21:33PM +0900: >Subject: Re: [PATCH 5.10.y 1/1] mailbox: imx: fix suspend failue failue -> failure > > When an interrupt occurs, it always wakes up. (nitpick: this isn't really clear: "imx_mu_isr() always calls pm_system_wakeup() even when it should not, making the system unable to enter sleep" ?) > Suspend fails as follows: > armadillo:~# echo mem > /sys/power/state > [ 2614.602432] PM: suspend entry (deep) > [ 2614.610640] Filesystems sync: 0.004 seconds > [ 2614.618016] Freezing user space processes ... (elapsed 0.001 seconds) done. > [ 2614.626555] OOM killer disabled. > [ 2614.629792] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. > [ 2614.638456] printk: Suspending console(s) (use no_console_suspend to debug) > [ 2614.649504] PM: Some devices failed to suspend, or early wake event detected > [ 2614.730103] PM: resume devices took 0.080 seconds > [ 2614.741924] OOM killer enabled. > [ 2614.745073] Restarting tasks ... done. > [ 2614.754532] PM: suspend exit > ash: write error: Resource busy > armadillo:~# > > Upstream is correct, so it seems to be a mistake in cheery-pick. cheery-pick -> cherry-pick (This is a trivial lookup away but might as well name upstream's commit e.g. "Upstream commit 892cb524ae8a is correct, so this seems to be a mistake during cherry-pick") > Cc: <stable@xxxxxxxxxxxxxxx> > Fixes: a16f5ae8ade1 ("mailbox: imx: fix wakeup failure from freeze mode") > Signed-off-by: Daisuke Mizobuchi <mizo@xxxxxxxxxxxxxxxxx> These typos aside I've confirmed the resulting code matches' upstream's: Reviewed-by: Dominique Martinet <dominique.martinet@xxxxxxxxxxxxxxxxx> The backport in 5.15 also seems correct and does not need this, and there does not seem to be any older backport either that need fixing, so 5.10 is the only branch that requires fixing. Thanks! I've left the diff below for new Ccs. > --- > drivers/mailbox/imx-mailbox.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/mailbox/imx-mailbox.c b/drivers/mailbox/imx-mailbox.c > index c5663398c6b7..28f5450e4130 100644 > --- a/drivers/mailbox/imx-mailbox.c > +++ b/drivers/mailbox/imx-mailbox.c > @@ -331,8 +331,6 @@ static int imx_mu_startup(struct mbox_chan *chan) > break; > } > > - priv->suspend = true; > - > return 0; > } > > @@ -550,8 +548,6 @@ static int imx_mu_probe(struct platform_device *pdev) > > clk_disable_unprepare(priv->clk); > > - priv->suspend = false; > - > return 0; > > disable_runtime_pm: > @@ -614,6 +610,8 @@ static int __maybe_unused imx_mu_suspend_noirq(struct device *dev) > if (!priv->clk) > priv->xcr = imx_mu_read(priv, priv->dcfg->xCR); > > + priv->suspend = true; > + > return 0; > } > > @@ -632,6 +630,8 @@ static int __maybe_unused imx_mu_resume_noirq(struct device *dev) > if (!imx_mu_read(priv, priv->dcfg->xCR) && !priv->clk) > imx_mu_write(priv, priv->xcr, priv->dcfg->xCR); > > + priv->suspend = false; > + > return 0; > } > -- Dominique Martinet