lkml.org 
[lkml]   [2017]   [May]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.10 53/62] ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
    Date
    4.10-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Takashi Iwai <tiwai@suse.de>

    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.

    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Acked-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    sound/soc/intel/boards/bytcr_rt5640.c | 4 ++--
    sound/soc/intel/boards/bytcr_rt5651.c | 2 --
    2 files changed, 2 insertions(+), 4 deletions(-)

    --- 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_rt564
    .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_rt564
    .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_rt564
    | 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,
    --- 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_rt565
    .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_rt565
    .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,

    \
     
     \ /
      Last update: 2017-05-01 23:38    [W:5.209 / U:0.232 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site