public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 5.10.y 1/1] mailbox: imx: fix suspend failure
@ 2024-04-12  5:56 Daisuke Mizobuchi
  2024-04-12  6:12 ` Dominique MARTINET
  0 siblings, 1 reply; 3+ messages in thread
From: Daisuke Mizobuchi @ 2024-04-12  5:56 UTC (permalink / raw)
  To: stable

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 commit 892cb524ae8a is correct, so this seems to be a
mistake during cherry-pick.

Cc: <stable@vger.kernel.org>
Fixes: a16f5ae8ade1 ("mailbox: imx: fix wakeup failure from freeze mode")
Signed-off-by: Daisuke Mizobuchi <mizo@atmark-techno.com>
Reviewed-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
---
 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;
 }
 
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 5.10.y 1/1] mailbox: imx: fix suspend failure
  2024-04-12  5:56 [PATCH v2 5.10.y 1/1] mailbox: imx: fix suspend failure Daisuke Mizobuchi
@ 2024-04-12  6:12 ` Dominique MARTINET
  2024-04-12  6:24   ` Peng Fan
  0 siblings, 1 reply; 3+ messages in thread
From: Dominique MARTINET @ 2024-04-12  6:12 UTC (permalink / raw)
  To: Daisuke Mizobuchi; +Cc: stable, Greg Kroah-Hartman, Jacky Bai, Peng Fan

(Added Ccs again - Robin Gong and Jassi Brar both bounced last time so
didn't add them back)

Daisuke Mizobuchi wrote on Fri, Apr 12, 2024 at 02:56:48PM +0900:
> 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 commit 892cb524ae8a is correct, so this seems to be a
> mistake during cherry-pick.
> 
> Cc: <stable@vger.kernel.org>
> Fixes: a16f5ae8ade1 ("mailbox: imx: fix wakeup failure from freeze mode")
> Signed-off-by: Daisuke Mizobuchi <mizo@atmark-techno.com>
> Reviewed-by: Dominique Martinet <dominique.martinet@atmark-techno.com>

Ok.

Thanks,
Dominique

> ---
>  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;
>  }
>  



^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH v2 5.10.y 1/1] mailbox: imx: fix suspend failure
  2024-04-12  6:12 ` Dominique MARTINET
@ 2024-04-12  6:24   ` Peng Fan
  0 siblings, 0 replies; 3+ messages in thread
From: Peng Fan @ 2024-04-12  6:24 UTC (permalink / raw)
  To: Dominique MARTINET, 大輔 溝渕
  Cc: stable@vger.kernel.org, Greg Kroah-Hartman, Jacky Bai

> Subject: Re: [PATCH v2 5.10.y 1/1] mailbox: imx: fix suspend failure
> 
> (Added Ccs again - Robin Gong and Jassi Brar both bounced last time so didn't
> add them back)
> 
> Daisuke Mizobuchi wrote on Fri, Apr 12, 2024 at 02:56:48PM +0900:
> > 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 commit 892cb524ae8a is correct, so this seems to be a mistake
> > during cherry-pick.
> >
> > Cc: <stable@vger.kernel.org>
> > Fixes: a16f5ae8ade1 ("mailbox: imx: fix wakeup failure from freeze
> > mode")
> > Signed-off-by: Daisuke Mizobuchi <mizo@atmark-techno.com>
> > Reviewed-by: Dominique Martinet <dominique.martinet@atmark-
> techno.com>
> 
> Ok.
> 
> Thanks,
> Dominique
> 
> > ---
> >  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;
> >  }
> >
> 

LGTM:  Reviewed-by: Peng Fan <peng.fan@nxp.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-04-12  6:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-12  5:56 [PATCH v2 5.10.y 1/1] mailbox: imx: fix suspend failure Daisuke Mizobuchi
2024-04-12  6:12 ` Dominique MARTINET
2024-04-12  6:24   ` Peng Fan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox