• Takashi Iwai's avatar
    ASoC: intel: Fix PM and non-atomic crash in bytcr drivers · 6e4cac23
    Takashi Iwai authored
    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: default avatarTakashi Iwai <tiwai@suse.de>
    Acked-by: default avatarVinod Koul <vinod.koul@intel.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Cc: <stable@vger.kernel.org> # v4.1+
    6e4cac23
bytcr_rt5640.c 24.4 KB