Re: [alsa-devel] [PATCH] mfd: arizona: Call the runtime PM function if the state is runtime resumed

From: Charles Keepax
Date: Thu Sep 24 2015 - 04:05:22 EST


On Thu, Sep 24, 2015 at 10:38:09AM +0900, Inha Song wrote:
> Hi, Charles,
>
> On Wed, 23 Sep 2015 15:43:12 +0100
> Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> > On Wed, Sep 23, 2015 at 11:04:04AM +0900, Inha Song wrote:
> > > Hi, Charles,
> > >
> > > I saw the log with LOG_DEVICE in regmap. But, I'm not sure the reason that suspend noirq failed is IRQ occuring.
> > >
> > > Here is my log:
> > > --
> > > root@localhost:~# aplay test.wav
> > > [ 41.049072] s3c64xx_spi_runtime_suspend
> > > [ 41.056043] arizona spi1.0: ASRC underclocked
> > > ....
> > > [ 72.308238] arizona spi1.0: Suspend, disabling IRQ
> > > [ 72.320286] arizona spi1.0: 400 <= 0
> > > [ 72.320310] s3c64xx_spi_runtime_resume
> > > [ 72.336047] arizona spi1.0: 51a <= 0
> > > [ 72.336217] arizona spi1.0: 101 <= 8604
> > > [ 72.336401] arizona spi1.0: 171 <= 3
> > > [ 72.336425] arizona spi1.0: 171 <= 2
> > > [ 72.336731] arizona spi1.0: 171 <= 0
> > > [ 72.336751] arizona spi1.0: SYSCLK cleared
> > > [ 72.338584] arizona spi1.0: SYSCLK cleared
> >
> > This bit looks likely related to your problem, it looks like the
> > FLL is being turned off. My guess here would be that you haven't
> > called snd_soc_dapm_ignore_suspend from your machine driver, you
> > need to call this for all end points that may want to stay
> > powered up during system suspend and also set the ignore_suspend
> > flag on any DAI links you want to remain active during system
> > suspend.
>
> But, We should call the trigger callback with SNDRV_PCM_TRIGGER_SUSPEND and *_RESUME command
> for support senarios what suspend during the playback and resume.
> So, I can't set the "ignore_suspend" in playback DAI.
>
> For this reason, I would have called the runtime_suspend manually in arizona-core when suspend.
>
> Best Reagrds,
> Inha Song.
>

Ah ok so you want the audio to stop during suspend?

Ok in that case can we get a bit more of log, your log finished
up here:

[ 72.308238] arizona spi1.0: Suspend, disabling IRQ
[ 72.320286] arizona spi1.0: 400 <= 0
[ 72.320310] s3c64xx_spi_runtime_resume
[ 72.336047] arizona spi1.0: 51a <= 0
[ 72.336217] arizona spi1.0: 101 <= 8604
[ 72.336401] arizona spi1.0: 171 <= 3
[ 72.336425] arizona spi1.0: 171 <= 2
[ 72.336731] arizona spi1.0: 171 <= 0
[ 72.336751] arizona spi1.0: SYSCLK cleared
[ 72.338584] arizona spi1.0: SYSCLK cleared
[ 72.339123] s3c64xx_spi_suspend
[ 72.355866] arizona spi1.0: Late suspend, reenabling IRQ
[ 72.355893] >>> noirq failed because of spi1
[ 72.355948] arizona spi1.0: Early resume, disabling IRQ
[ 72.416798] PM: noirq suspend of devices failed

Which finished too early as we can't see which IRQ it was that
triggered the wakeup.

Thanks,
Charles
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/