* [PATCH v4.4.x] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
@ 2017-05-01 7:09 Takashi Iwai
2017-05-01 7:09 ` Takashi Iwai
0 siblings, 1 reply; 3+ messages in thread
From: Takashi Iwai @ 2017-05-01 7:09 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: stable, Mark Brown, Vinod Koul
commit 6e4cac23c5a648d50b107d1b53e9c4e1120c7943 upstream.
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:
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.
[tiwai: applied only to bytcr_rt5640 as bytcr_rt5651 isn't present in
4.4.x yet]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: <stable@vger.kernel.org> # v4.1+
---
This is the patch modified to be applicable to 4.4.x that failed in
your previous queue.
sound/soc/intel/boards/bytcr_rt5640.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
index 7a5c9a36c1db..daba8c56b43b 100644
--- a/sound/soc/intel/boards/bytcr_rt5640.c
+++ b/sound/soc/intel/boards/bytcr_rt5640.c
@@ -139,7 +139,7 @@ static struct snd_soc_dai_link byt_dailink[] = {
.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,
@@ -166,6 +166,7 @@ static struct snd_soc_dai_link byt_dailink[] = {
| SND_SOC_DAIFMT_CBS_CFS,
.be_hw_params_fixup = byt_codec_fixup,
.ignore_suspend = 1,
+ .nonatomic = true,
.dpcm_playback = 1,
.dpcm_capture = 1,
.ops = &byt_be_ssp2_ops,
--
2.12.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH v4.4.x] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
2017-05-01 7:09 [PATCH v4.4.x] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers Takashi Iwai
@ 2017-05-01 7:09 ` Takashi Iwai
2017-05-03 22:35 ` Greg Kroah-Hartman
0 siblings, 1 reply; 3+ messages in thread
From: Takashi Iwai @ 2017-05-01 7:09 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: stable, Mark Brown, Vinod Koul
commit 6e4cac23c5a648d50b107d1b53e9c4e1120c7943 upstream.
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:
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.
[tiwai: applied only to bytcr_rt5640 as bytcr_rt5651 isn't present in
4.4.x yet]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: <stable@vger.kernel.org> # v4.1+
---
This is the patch modified to be applicable to 4.4.x that failed in
your previous queue.
sound/soc/intel/boards/bytcr_rt5640.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
index 7a5c9a36c1db..daba8c56b43b 100644
--- a/sound/soc/intel/boards/bytcr_rt5640.c
+++ b/sound/soc/intel/boards/bytcr_rt5640.c
@@ -139,7 +139,7 @@ static struct snd_soc_dai_link byt_dailink[] = {
.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,
@@ -166,6 +166,7 @@ static struct snd_soc_dai_link byt_dailink[] = {
| SND_SOC_DAIFMT_CBS_CFS,
.be_hw_params_fixup = byt_codec_fixup,
.ignore_suspend = 1,
+ .nonatomic = true,
.dpcm_playback = 1,
.dpcm_capture = 1,
.ops = &byt_be_ssp2_ops,
--
2.12.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v4.4.x] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
2017-05-01 7:09 ` Takashi Iwai
@ 2017-05-03 22:35 ` Greg Kroah-Hartman
0 siblings, 0 replies; 3+ messages in thread
From: Greg Kroah-Hartman @ 2017-05-03 22:35 UTC (permalink / raw)
To: Takashi Iwai; +Cc: stable, Mark Brown, Vinod Koul
On Mon, May 01, 2017 at 09:09:27AM +0200, Takashi Iwai wrote:
> commit 6e4cac23c5a648d50b107d1b53e9c4e1120c7943 upstream.
>
> 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:
>
> 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.
>
> [tiwai: applied only to bytcr_rt5640 as bytcr_rt5651 isn't present in
> 4.4.x yet]
>
> Signed-off-by: Takashi Iwai <tiwai@suse.de>
> Acked-by: Vinod Koul <vinod.koul@intel.com>
> Signed-off-by: Mark Brown <broonie@kernel.org>
> Cc: <stable@vger.kernel.org> # v4.1+
> ---
>
> This is the patch modified to be applicable to 4.4.x that failed in
> your previous queue.
Thanks for the backport, now applied.
greg k-h
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-05-03 22:35 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-01 7:09 [PATCH v4.4.x] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers Takashi Iwai
2017-05-01 7:09 ` Takashi Iwai
2017-05-03 22:35 ` Greg Kroah-Hartman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.