android_kernel_oneplus_msm8998/sound/soc/intel
Takashi Iwai a2b3b19acf ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
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+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-08 07:46:01 +02:00
..
atom ASoC: intel: Fix crash at suspend/resume without card registration 2017-01-06 11:16:15 +01:00
baytrail ASoC: Intel: sst_byt: fix initialize 'NULL device *' issue 2015-07-29 14:55:16 +01:00
boards ASoC: intel: Fix PM and non-atomic crash in bytcr drivers 2017-05-08 07:46:01 +02:00
common ASoC: Intel: sst: only use sst-firmware when DW DMAC is available 2015-10-22 14:01:51 +01:00
haswell Merge remote-tracking branches 'asoc/fix/davinci', 'asoc/fix/doc', 'asoc/fix/fsl-card', 'asoc/fix/fsl-ssi', 'asoc/fix/intel' and 'asoc/fix/maintainers' into asoc-linus 2015-09-23 11:01:03 -07:00
skylake ASoC: Intel: Skylake: Fix error return code in skl_probe() 2016-10-07 15:23:45 +02:00
Kconfig ASoC: Intel: Skylake: Add I2C depends for SKL machine 2015-11-18 17:13:51 +00:00
Makefile ASoC: Intel: Add makefile support for SKL driver 2015-07-09 11:54:26 +01:00