Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56f630a0 authored by Cezary Rojewski's avatar Cezary Rojewski Committed by Greg Kroah-Hartman
Browse files

ASoC: Intel: Skylake: Fix driver hang during shutdown



[ Upstream commit 171107237246d66bce04f3769d33648f896b4ce3 ]

AudioDSP cores and HDAudio links need to be turned off on shutdown to
ensure no communication or data transfer occurs during the procedure.

Fixes: c5a76a24 ("ASoC: Intel: Skylake: Add shutdown callback")
Signed-off-by: default avatarCezary Rojewski <cezary.rojewski@intel.com>
Tested-by: default avatarLukasz Majczak <lma@semihlaf.com>
Link: https://lore.kernel.org/r/20221205085330.857665-6-cezary.rojewski@intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent fd0d3bf3
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1116,7 +1116,10 @@ static void skl_shutdown(struct pci_dev *pci)
	if (!skl->init_done)
		return;

	snd_hdac_stop_streams_and_chip(bus);
	snd_hdac_stop_streams(bus);
	snd_hdac_ext_bus_link_power_down_all(bus);
	skl_dsp_sleep(skl->dsp);

	list_for_each_entry(s, &bus->stream_list, list) {
		stream = stream_to_hdac_ext_stream(s);
		snd_hdac_ext_stream_decouple(bus, stream, false);