[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <20150921111642.112dc0c2@songinha-Samsung-DeskTop-System>
Date: Mon, 21 Sep 2015 11:16:42 +0900
From: Inha Song <ideal.song@...sung.com>
To: Charles Keepax <ckeepax@...nsource.wolfsonmicro.com>
Cc: lee.jones@...aro.org, broonie@...nel.org,
linux-kernel@...r.kernel.org, alsa-devel@...a-project.org,
patches@...nsource.wolfsonmicro.com, sameo@...ux.intel.com
Subject: Re: [alsa-devel] [PATCH] mfd: arizona: Call the runtime PM function if
the state is runtime resumed
Hi, Charles,
I've already tried to change.
If I change to that, we can't enter the suspen during the playback.
-
[ 72.538263] arizona spi1.0: Suspend, disabling IRQ
...
[ 72.585823] arizona spi1.0: Late suspend, reengabling IRQ
[ 72.585904] arizona spi1.0: Early resume, disabling IRQ
...
[ 72.646770] PM: noirq suspend of devices failed
<- because of "spi1.0" pm_wakeup_pending() in suspend_noirq()
...
[ 72.663623] s3c64xx_spi_resume
[ 72.851089] arizona spi1.0: Late resume, reenabling IRQ
Best Regards,
Inha Song.
On Fri, 18 Sep 2015 09:24:46 +0100
Charles Keepax <ckeepax@...nsource.wolfsonmicro.com> wrote:
> On Fri, Sep 18, 2015 at 03:49:03PM +0900, Inha Song wrote:
> > Hi,
> >
> > I just change dev_err() to dev_info() in arizona-core.
> >
> >
> > root@...alhost:~# aplay test.wav
> > [ 42.731358] arizona spi1.0: Leaving AoD mode
> > ....
> > [ 42.823514] s3c64xx_spi_runtime_resume
> > [ 42.828270] arizona spi1.0: ASRC underclocked
> > [ 42.828281] s3c64xx_spi_runtime_suspend
> > ....
> > -> suspend ()
> > [ 72.398152] arizona spi1.0: Suspend, disabling IRQ
> > [ 72.410471] s3c64xx_spi_runtime_resume
> > [ 72.429045] s3c64xx_spi_suspend
> > -> spi suspended
> > [ 72.429905] PM: suspend of devices complete after 67.309 msecs
> > [ 72.440084] arizona spi1.0: Late suspend, reenabling IRQ
> > -> try to access spi irq after spi suspend()
> > [ 72.440165] arizona spi1.0: Failed to read IRQ status: -108
> > [ 72.440174] arizona spi1.0: Failed to read main IRQ status: -108
> > [ 72.440242] arizona spi1.0: Failed to read IRQ status: -108
> > [ 72.440249] arizona spi1.0: Failed to read main IRQ status: -108
> > [ 72.440275] arizona spi1.0: Failed to read IRQ status: -108
> > [ 72.440282] arizona spi1.0: Failed to read main IRQ status: -108
> > [ 72.440304] arizona spi1.0: Failed to read IRQ status: -108
>
> Ok so looking at the system PM code I think the problem here is
> there is currently a small window between when we enable this IRQ
> and when the suspend proceedure disables IRQs and this IRQ is
> sneaking in at that point.
>
> Can you try the following diff and let me know what happens:
>
> --- a/drivers/mfd/arizona-core.c
> +++ b/drivers/mfd/arizona-core.c
> @@ -727,7 +727,7 @@ const struct dev_pm_ops arizona_pm_ops = {
> NULL)
> SET_SYSTEM_SLEEP_PM_OPS(arizona_suspend, arizona_resume)
> #ifdef CONFIG_PM_SLEEP
> - .suspend_late = arizona_suspend_late,
> + .suspend_noirq = arizona_suspend_late,
> .resume_noirq = arizona_resume_noirq,
> #endif
>
> Thanks,
> Charles
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists