Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Takashi Iwai <tiwai@suse.de>, Mark Brown <broonie@kernel.org>
Cc: Vinod Koul <vinod.koul@intel.com>,
	Liam Girdwood <liam.r.girdwood@linux.intel.com>,
	alsa-devel@alsa-project.org
Subject: Re: [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
Date: Mon, 24 Apr 2017 16:39:47 -0500	[thread overview]
Message-ID: <14ce353a-5dd5-76bc-d98b-d0d3e8b4e757@linux.intel.com> (raw)
In-Reply-To: <20170424120955.15519-1-tiwai@suse.de>



On 04/24/2017 07:09 AM, Takashi Iwai wrote:
> The FE setups of Intel SST bytcr_rt5640 and bytcr_rt5651 drivers carry
> the ignore_suspend flag, and this prevents the suspend/resume working
> properly while the stream is running, since SST core code has the
> check of the running streams and returns -EBUSY.  Drop these
> superfluous flags for fixing the behavior.
>
> Also, the bytcr_rt5640 driver lacks of nonatomic flag in some FE
> definitions, which leads to the kernel Oops at suspend/resume like:
This patch also fixes the known bug that reboot had to be forced on some 
BYT platforms with a manual restart when the audio driver was enabled.
Thanks Takashi!

>
>    BUG: scheduling while atomic: systemd-sleep/3144/0x00000003
>    Call Trace:
>     dump_stack+0x5c/0x7a
>     __schedule_bug+0x55/0x70
>     __schedule+0x63c/0x8c0
>     schedule+0x3d/0x90
>     schedule_timeout+0x16b/0x320
>     ? del_timer_sync+0x50/0x50
>     ? sst_wait_timeout+0xa9/0x170 [snd_intel_sst_core]
>     ? sst_wait_timeout+0xa9/0x170 [snd_intel_sst_core]
>     ? remove_wait_queue+0x60/0x60
>     ? sst_prepare_and_post_msg+0x275/0x960 [snd_intel_sst_core]
>     ? sst_pause_stream+0x9b/0x110 [snd_intel_sst_core]
>     ....
>
> This patch addresses these appropriately, too.
>
> Cc: <stable@vger.kernel.org> # v4.1+
> Signed-off-by: Takashi Iwai <tiwai@suse.de>
> ---
>   sound/soc/intel/boards/bytcr_rt5640.c | 4 ++--
>   sound/soc/intel/boards/bytcr_rt5651.c | 2 --
>   2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
> index 5c7219fb3aa8..9e2a3404a836 100644
> --- a/sound/soc/intel/boards/bytcr_rt5640.c
> +++ b/sound/soc/intel/boards/bytcr_rt5640.c
> @@ -621,7 +621,7 @@ static struct snd_soc_dai_link byt_rt5640_dais[] = {
>   		.codec_dai_name = "snd-soc-dummy-dai",
>   		.codec_name = "snd-soc-dummy",
>   		.platform_name = "sst-mfld-platform",
> -		.ignore_suspend = 1,
> +		.nonatomic = true,
>   		.dynamic = 1,
>   		.dpcm_playback = 1,
>   		.dpcm_capture = 1,
> @@ -634,7 +634,6 @@ static struct snd_soc_dai_link byt_rt5640_dais[] = {
>   		.codec_dai_name = "snd-soc-dummy-dai",
>   		.codec_name = "snd-soc-dummy",
>   		.platform_name = "sst-mfld-platform",
> -		.ignore_suspend = 1,
>   		.nonatomic = true,
>   		.dynamic = 1,
>   		.dpcm_playback = 1,
> @@ -661,6 +660,7 @@ static struct snd_soc_dai_link byt_rt5640_dais[] = {
>   						| SND_SOC_DAIFMT_CBS_CFS,
>   		.be_hw_params_fixup = byt_rt5640_codec_fixup,
>   		.ignore_suspend = 1,
> +		.nonatomic = true,
>   		.dpcm_playback = 1,
>   		.dpcm_capture = 1,
>   		.init = byt_rt5640_init,
> diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c
> index 3186f015939f..8164bec63bf1 100644
> --- a/sound/soc/intel/boards/bytcr_rt5651.c
> +++ b/sound/soc/intel/boards/bytcr_rt5651.c
> @@ -235,7 +235,6 @@ static struct snd_soc_dai_link byt_rt5651_dais[] = {
>   		.codec_dai_name = "snd-soc-dummy-dai",
>   		.codec_name = "snd-soc-dummy",
>   		.platform_name = "sst-mfld-platform",
> -		.ignore_suspend = 1,
>   		.nonatomic = true,
>   		.dynamic = 1,
>   		.dpcm_playback = 1,
> @@ -249,7 +248,6 @@ static struct snd_soc_dai_link byt_rt5651_dais[] = {
>   		.codec_dai_name = "snd-soc-dummy-dai",
>   		.codec_name = "snd-soc-dummy",
>   		.platform_name = "sst-mfld-platform",
> -		.ignore_suspend = 1,
>   		.nonatomic = true,
>   		.dynamic = 1,
>   		.dpcm_playback = 1,

  parent reply	other threads:[~2017-04-24 21:39 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-24 12:09 [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers Takashi Iwai
2017-04-24 12:57 ` Vinod Koul
2017-04-24 18:20 ` Applied "ASoC: intel: Fix PM and non-atomic crash in bytcr drivers" to the asoc tree Mark Brown
2017-04-24 21:39 ` Pierre-Louis Bossart [this message]
2017-04-24 21:45   ` [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers Takashi Iwai
2017-04-24 22:18     ` Pierre-Louis Bossart
2017-04-24 22:41       ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=14ce353a-5dd5-76bc-d98b-d0d3e8b4e757@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=tiwai@suse.de \
    --cc=vinod.koul@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox