linux/sound/soc/sof
Ranjani Sridharan b85459aafa
ASoC: SOF: core: remove DSP after unregistering machine driver
snd_sof_remove() disables the DSP and unmaps the DSP BAR.
Removing topology after disabling the DSP results in a
kernel panic while unloading the pipeline widget. This is
because pipeline widget unload attempts to power down
the core it is scheduled on by accessing the DSP registers.

So, the suggested fix here is to unregister the machine driver
first to remove the topology and then disable the DSP
to avoid the situation described above.

Note that the kernel panic only happens in cases where the
HDaudio link is not managed by the hdac library,
e.g. no codec or when HDMI is not supported.
When the hdac library is used, snd_sof_remove() calls
snd_hdac_ext_bus_device_remove() to remove the codec which
unregisters the component driver thereby also removing the
topology before the DSP is disabled.

Fixes: c16211d622 ("ASoC: SOF: Add Sound Open Firmware driver core")
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-05-28 15:46:37 +01:00
..
intel ASoC: SOF: xtensa: fix undefined references 2019-05-08 15:41:40 +09:00
xtensa ASoC: SOF: Add xtensa support 2019-04-28 02:49:31 +09:00
control.c
core.c ASoC: SOF: core: remove DSP after unregistering machine driver 2019-05-28 15:46:37 +01:00
debug.c ASoC: SOF: Add driver debug support. 2019-04-28 02:47:54 +09:00
ipc.c ASoC: SOF: fix error in verbose ipc command parsing 2019-05-13 12:37:28 +01:00
Kconfig ASoC: SOF: nocodec: fix undefined reference 2019-05-13 12:36:56 +01:00
loader.c ASoC: SOF: fix race in FW boot timeout handling 2019-05-13 12:37:12 +01:00
Makefile ASoC: SOF: Add Build support for SOF core and Intel drivers 2019-04-28 02:51:46 +09:00
nocodec.c ASoC: SOF: Add Nocodec machine driver support 2019-04-28 02:49:26 +09: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: IPC: add ipc dump function 2019-05-03 15:02:16 +09:00
pcm.c ASoC: SOF: PCM: add period_elapsed work to fix race condition in interrupt context 2019-05-03 14:59:11 +09:00
pm.c ASoC: SOF: intel: hda: add hw_params_upon_resume flag for hda stream 2019-05-03 15:01:45 +09:00
sof-acpi-dev.c ASoC: SOF: Add ACPI device support 2019-04-28 02:51:01 +09:00
sof-pci-dev.c ASoC: SOF: Add PCI device support 2019-04-28 02:51:05 +09:00
sof-priv.h ASoC: SOF: IPC: add ipc dump function 2019-05-03 15:02:16 +09:00
topology.c ASoC: SOF: topology: add support for stricter ABI checks 2019-05-03 14:56:31 +09:00
trace.c ASoC: SOF: Add DSP firmware logger support 2019-04-28 02:48:10 +09:00
utils.c ASoC: SOF: Add utils 2019-04-28 02:49:47 +09:00