linux/sound/soc/sof
Pierre-Louis Bossart 410e5e55c9
ASoC: SOF: core: release resources on errors in probe_continue
The initial intent of releasing resources in the .remove does not work
well with HDaudio codecs. If the probe_continue() fails in a work
queue, e.g. due to missing firmware or authentication issues, we don't
release any resources, and as a result the kernel oopses during
suspend operations.

The suggested fix is to release all resources during errors in
probe_continue(), and use fw_state to track resource allocation
state, so that .remove does not attempt to release the same
hardware resources twice. PM operations are also modified so that
no action is done if DSP resources have been freed due to
an error at probe.

Reported-by: Takashi Iwai <tiwai@suse.de>
Co-developed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Bugzilla:  http://bugzilla.suse.com/show_bug.cgi?id=1161246
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20200124213625.30186-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
2020-01-27 17:51:59 +00:00
..
imx ASoC: SOF: imx8: use resource_size 2020-01-01 21:39:33 +00:00
intel ASoC: SOF: Intel: do not disable i915 power during probe 2020-01-27 17:51:43 +00:00
xtensa ASoC: SOF: Intel: add namespace for XTENSA 2019-12-18 20:02:21 +00:00
control.c ASoC: SOF: partition audio-related parts from SOF core 2019-12-09 18:38:57 +00:00
core.c ASoC: SOF: core: release resources on errors in probe_continue 2020-01-27 17:51:59 +00:00
debug.c Merge branch 'for-5.4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.5 2019-11-06 16:29:34 +00:00
ipc.c Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.6 2019-12-25 17:51:43 +00:00
Kconfig ASoC: SOF: remove references to Haswell 2019-12-18 19:51:40 +00:00
loader.c ASoC: SOF: loader: add dynamic debug trace 2020-01-07 22:29:20 +00:00
Makefile ASoC: SOF: partition audio-related parts from SOF core 2019-12-09 18:38:57 +00:00
nocodec.c ASoC: SOF: nocodec: Amend arguments for sof_nocodec_setup() 2019-12-09 18:40:32 +00:00
ops.c ASoC: SOF: Fix a compile warning with CONFIG_PCI=n 2019-05-07 11:23:57 +09:00
ops.h ASoC: SOF: Make creation of machine device from SOF core optional 2019-12-09 18:39:35 +00:00
pcm.c ASoC: SOF: fix an Oops, caused by invalid topology 2020-01-27 17:51:49 +00:00
pm.c ASoC: SOF: core: release resources on errors in probe_continue 2020-01-27 17:51:59 +00:00
sof-acpi-dev.c ASoC: SOF: move arch_ops under ops 2019-12-18 20:02:02 +00:00
sof-audio.c ASoC: SOF: nocodec: Amend arguments for sof_nocodec_setup() 2019-12-09 18:40:32 +00:00
sof-audio.h ASoC: SOF: Make creation of machine device from SOF core optional 2019-12-09 18:39:35 +00:00
sof-of-dev.c ASoC: SOF: remove nocodec_fw_filename 2019-12-09 18:39:54 +00:00
sof-pci-dev.c ASoC: SOF: Intel: reference SoundWire machine lists 2020-01-13 15:01:39 +00:00
sof-priv.h ASoC: SOF: move arch_ops under ops 2019-12-18 20:02:02 +00:00
topology.c ASoC: SOF: imx: Read SAI parameters and send them to DSP 2019-12-18 19:54:25 +00:00
trace.c ASoC: SOF: core: modify the signature for snd_sof_create_page_table 2019-12-09 18:38:01 +00:00
utils.c ASoC: SOF: core: modify the signature for snd_sof_create_page_table 2019-12-09 18:38:01 +00:00