All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
@ 2017-04-24 12:09 Takashi Iwai
  2017-04-24 12:57 ` Vinod Koul
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Takashi Iwai @ 2017-04-24 12:09 UTC (permalink / raw)
  To: Mark Brown; +Cc: Vinod Koul, Liam Girdwood, alsa-devel, Pierre-Louis Bossart

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.

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,
-- 
2.11.1

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

* Re: [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
  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   ` Mark Brown
  2017-04-24 21:39 ` [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers Pierre-Louis Bossart
  2 siblings, 0 replies; 8+ messages in thread
From: Vinod Koul @ 2017-04-24 12:57 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Liam Girdwood, alsa-devel, Mark Brown, Pierre-Louis Bossart

On Mon, Apr 24, 2017 at 02:09:55PM +0200, 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:
> 
>   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.

Acked-by: Vinod Koul <vinod.koul@intel.com>

-- 
~Vinod

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

* Applied "ASoC: intel: Fix PM and non-atomic crash in bytcr drivers" to the asoc tree
  2017-04-24 12:09 [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers Takashi Iwai
@ 2017-04-24 18:20   ` Mark Brown
  2017-04-24 18:20   ` Mark Brown
  2017-04-24 21:39 ` [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers Pierre-Louis Bossart
  2 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2017-04-24 18:20 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Vinod Koul, Mark Brown, stable, Mark Brown, Vinod Koul,
	Liam Girdwood, alsa-devel, Pierre-Louis Bossart, alsa-devel

The patch

   ASoC: intel: Fix PM and non-atomic crash in bytcr drivers

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From 22ae4057173ebf48020d5a713242bd9de9e64b46 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Mon, 24 Apr 2017 14:09:55 +0200
Subject: [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers

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.

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+
---
 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 0ac32788f216..b1f0ccb64a6a 100644
--- a/sound/soc/intel/boards/bytcr_rt5640.c
+++ b/sound/soc/intel/boards/bytcr_rt5640.c
@@ -625,7 +625,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,
@@ -638,7 +638,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,
@@ -665,6 +664,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,
-- 
2.11.0

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

* Applied "ASoC: intel: Fix PM and non-atomic crash in bytcr drivers" to the asoc tree
@ 2017-04-24 18:20   ` Mark Brown
  0 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2017-04-24 18:20 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Vinod Koul, Mark Brown, stable

The patch

   ASoC: intel: Fix PM and non-atomic crash in bytcr drivers

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From 22ae4057173ebf48020d5a713242bd9de9e64b46 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Mon, 24 Apr 2017 14:09:55 +0200
Subject: [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers

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.

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+
---
 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 0ac32788f216..b1f0ccb64a6a 100644
--- a/sound/soc/intel/boards/bytcr_rt5640.c
+++ b/sound/soc/intel/boards/bytcr_rt5640.c
@@ -625,7 +625,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,
@@ -638,7 +638,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,
@@ -665,6 +664,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,
-- 
2.11.0

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

* Re: [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
  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   ` Mark Brown
@ 2017-04-24 21:39 ` Pierre-Louis Bossart
  2017-04-24 21:45   ` Takashi Iwai
  2 siblings, 1 reply; 8+ messages in thread
From: Pierre-Louis Bossart @ 2017-04-24 21:39 UTC (permalink / raw)
  To: Takashi Iwai, Mark Brown; +Cc: Vinod Koul, Liam Girdwood, alsa-devel



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,

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

* Re: [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
  2017-04-24 21:39 ` [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers Pierre-Louis Bossart
@ 2017-04-24 21:45   ` Takashi Iwai
  2017-04-24 22:18     ` Pierre-Louis Bossart
  0 siblings, 1 reply; 8+ messages in thread
From: Takashi Iwai @ 2017-04-24 21:45 UTC (permalink / raw)
  To: Pierre-Louis Bossart; +Cc: Vinod Koul, Liam Girdwood, alsa-devel, Mark Brown

On Mon, 24 Apr 2017 23:39:47 +0200,
Pierre-Louis Bossart wrote:
> 
> 
> 
> 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!

While we're at it: could you submit the UCM profiles as alsa-lib
upstream?  At least the ones for the drivers that are in the current
kernel should be merged.

If there are multiple board-specific UCMs for the same driver, we can
use now card's longname (generated from DMI string) as the primary
source, while keeping the $DRIVER/$DRIVER.conf as the fallback.


thanks,

Takashi

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

* Re: [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
  2017-04-24 21:45   ` Takashi Iwai
@ 2017-04-24 22:18     ` Pierre-Louis Bossart
  2017-04-24 22:41       ` Takashi Iwai
  0 siblings, 1 reply; 8+ messages in thread
From: Pierre-Louis Bossart @ 2017-04-24 22:18 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Vinod Koul, Liam Girdwood, alsa-devel, Mark Brown

On 4/24/17 4:45 PM, Takashi Iwai wrote:
> On Mon, 24 Apr 2017 23:39:47 +0200,
> Pierre-Louis Bossart wrote:
>>
>>
>>
>> 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!
>
> While we're at it: could you submit the UCM profiles as alsa-lib
> upstream?  At least the ones for the drivers that are in the current
> kernel should be merged.
>
> If there are multiple board-specific UCMs for the same driver, we can
> use now card's longname (generated from DMI string) as the primary
> source, while keeping the $DRIVER/$DRIVER.conf as the fallback.

Well I've lost track of which git repo UCM files should be in, both the 
license and the update rate of alsa-lib are problematic for 
configuration files. We also talked about some include capabilities to 
avoid copy/paste but I can't recall having seen them upstream.
I also haven't had time to test the long name on my devices.

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

* Re: [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
  2017-04-24 22:18     ` Pierre-Louis Bossart
@ 2017-04-24 22:41       ` Takashi Iwai
  0 siblings, 0 replies; 8+ messages in thread
From: Takashi Iwai @ 2017-04-24 22:41 UTC (permalink / raw)
  To: Pierre-Louis Bossart; +Cc: Vinod Koul, Liam Girdwood, alsa-devel, Mark Brown

On Tue, 25 Apr 2017 00:18:31 +0200,
Pierre-Louis Bossart wrote:
> 
> On 4/24/17 4:45 PM, Takashi Iwai wrote:
> > On Mon, 24 Apr 2017 23:39:47 +0200,
> > Pierre-Louis Bossart wrote:
> >>
> >>
> >>
> >> 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!
> >
> > While we're at it: could you submit the UCM profiles as alsa-lib
> > upstream?  At least the ones for the drivers that are in the current
> > kernel should be merged.
> >
> > If there are multiple board-specific UCMs for the same driver, we can
> > use now card's longname (generated from DMI string) as the primary
> > source, while keeping the $DRIVER/$DRIVER.conf as the fallback.
> 
> Well I've lost track of which git repo UCM files should be in, both
> the license and the update rate of alsa-lib are problematic for
> configuration files.

The split to another repo is planned but doesn't happen yet.  I guess
we'll do it after 1.1.4 release.  So far, you can submit the existing
files just to alsa-lib as is unless you want inevitably another
license.

> We also talked about some include capabilities to
> avoid copy/paste but I can't recall having seen them upstream.

Hm, it's basically always possible as an alsa-lib config feasture, but
never used.  We can work on it later once after gathering the similar
profiles.

> I also haven't had time to test the long name on my devices.

That's OK, we can begin with the basic ones such as bytcr_rt5640.conf.
The longname stuff is new and will be available at first in 3.12, so
it's a feature in near future.


thanks,

Takashi

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

end of thread, other threads:[~2017-04-24 22:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 18:20   ` Mark Brown
2017-04-24 21:39 ` [PATCH] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers Pierre-Louis Bossart
2017-04-24 21:45   ` Takashi Iwai
2017-04-24 22:18     ` Pierre-Louis Bossart
2017-04-24 22:41       ` Takashi Iwai

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.