linux/sound/soc/sof
Kai Vehmanen 37c8d485cb ASoC: SOF: Intel: hda: fix hotplug when only codec is suspended
[ Upstream commit fd572393ba ]

If codec is in runtime suspend, but controller is not, hotplug events
are missed as the codec has no way to alert the controller. Problem does
not occur if both controller and codec are active, or when both are
suspended.

An easy way to reproduce is to play an audio stream on one codec (e.g.
to HDMI/DP display codec), wait for other HDA codec to go to runtime
suspend, and then plug in a headset to the suspended codec. The jack
event is not reported correctly in this case. Another way to reproduce
is to force controller to stay active with
"snd_sof_pci.sof_pci_debug=0x1"

Fix the issue by reconfiguring the WAKEEN register when powering up/down
individual links, and handling control events in the interrupt handler.

Fixes: 87fc20e4a0 ("ASoC: SOF: Intel: hda: use hdac_ext fine-grained link management")
Reported-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20211105111655.668777-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-12-01 09:04:45 +01:00
..
imx ASoC: SOF: imx: imx8m: Bar index is only valid for IRAM and SRAM types 2021-09-15 16:23:49 +01:00
intel ASoC: SOF: Intel: hda: fix hotplug when only codec is suspended 2021-12-01 09:04:45 +01:00
xtensa ASoC: SOF: Fix DSP oops stack dump output contents 2021-09-15 13:07:51 +01:00
compress.c ASoC: SOF: Intel: Constify sof_probe_compressed_ops 2021-06-01 14:05:15 +01:00
compress.h ASoC: SOF: Intel: Constify sof_probe_compressed_ops 2021-06-01 14:05:15 +01:00
control.c ASoC: SOF: control: override volume info callback 2020-11-20 13:49:05 +00:00
core.c ASoC: SOF: loader: release_firmware() on load failure to avoid batching 2021-09-16 14:01:54 +01:00
debug.c ASoC: SOF: remove superfluous NULL check in debugfs read 2021-03-16 13:25:46 +00:00
ipc.c ASoC: SOF: relax ABI checks and avoid unnecessary warnings 2021-02-11 17:31:56 +00:00
Kconfig ASoC: SOF: add Kconfig option for probe workqueues 2021-04-12 17:05:50 +01:00
loader.c ASoC: SOF: loader: Re-phrase the missing firmware error to avoid duplication 2021-09-16 14:01:55 +01:00
Makefile ASoC: SOF: pci: split PCI into different drivers 2021-03-02 15:32:00 +01:00
nocodec.c ASOC: SOF: simplify nocodec mode 2021-04-12 17:05:55 +01:00
ops.c ASoC: SOF: modify the SOF_DBG flags 2020-12-11 13:22:57 +00:00
ops.h ASoC: SOF: ops: don't return void value 2021-05-21 13:13:40 +01:00
pcm.c ASoC: SOF: pcm: export snd_pcm_dai_link_fixup 2021-04-12 17:05:54 +01:00
pm.c ASoC: SOF: reset enabled_cores state at suspend 2021-06-01 14:03:01 +01:00
probe.c ASoC: SOF/Intel: clarify SPDX license with GPL-2.0-only 2020-05-01 17:45:24 +01:00
probe.h ASoC: SOF: Replace zero-length array with flexible-array 2020-06-15 23:08:32 -05:00
sof-acpi-dev.c ASoC: SOF: Check desc->ops directly in acpi/pci/of probe functions 2021-05-21 13:13:35 +01:00
sof-acpi-dev.h ASoC: SOF: ACPI: avoid reverse module dependency 2021-03-02 15:31:40 +01:00
sof-audio.c ASoC: SOF: add a helper to get topology configured bclk 2021-07-11 23:48:30 +01:00
sof-audio.h ASoC: SOF: parse multiple SSP DAI and hw configs 2021-03-29 17:28:17 +01:00
sof-of-dev.c ASoC: SOF: Check desc->ops directly in acpi/pci/of probe functions 2021-05-21 13:13:35 +01:00
sof-pci-dev.c ASoC: SOF: Intel: Use DMI string to search for adl_mx98373_rt5682 variant 2021-08-03 18:26:10 +01:00
sof-pci-dev.h ASoC: SOF: pci: split PCI into different drivers 2021-03-02 15:32:00 +01:00
sof-priv.h ASoC: SOF: change signature of set_mach_params() callback 2021-04-12 17:05:52 +01:00
topology.c ASoC: SOF: topology: do not power down primary core during topology removal 2021-11-18 19:16:50 +01:00
trace.c ASoC: SOF: trace: Omit error print when waking up trace sleepers 2021-09-17 13:16:36 +01:00
utils.c ASoC: SOF/Intel: clarify SPDX license with GPL-2.0-only 2020-05-01 17:45:24 +01:00