1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-22 16:06:04 -05:00
linux/include/sound
Kai Vehmanen ee0b089d66 ALSA: hda/hdmi: fix stream-id config keep-alive for rt suspend
When the new style KAE keep-alive implementation is used on compatible
Intel hardware, the clocks are maintained when codec is in D3. The
generic code in hda_cleanup_all_streams() can however interfere with
generation of audio samples in this mode, by setting the stream and
channel ids to zero.

To get full benefit of the keepalive, set the new
no_stream_clean_at_suspend quirk bit on affected Intel hardware. When
this bit is set, stream cleanup is skipped in hda_call_codec_suspend().

Special handling is needed for the case when system goes to suspend. The
stream id programming can be lost in this case. This will also cause
codec->cvt_setups to be out of sync. Handle this by implementing custom
suspend/resume handlers. If keep-alive is active for any converter, set
the quirk flags no_stream_clean_at_suspend and forced_resume. Upon
resume, keepalive programming is restored if needed.

Fixes: 15175a4f2b ("ALSA: hda/hdmi: add keep-alive support for ADL-P and DG2")
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20221209101822.3893675-4-kai.vehmanen@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2022-12-09 12:06:15 +01:00
..
ac97
sof ASoC: SOF: Add DAI configuration support for AMD platforms. 2022-11-29 12:56:09 +00:00
ac97_codec.h
aci.h
acp63_chip_offset_byte.h ASoC: amd: fix ACP version typo mistake 2022-11-04 12:25:08 +00:00
ad1816a.h
ad1843.h
adau1373.h
ak4xxx-adda.h
ak4113.h
ak4114.h
ak4117.h
ak4531_codec.h
ak4641.h
alc5623.h
asequencer.h
asound.h
asoundef.h
compress_driver.h
control.h ALSA: control: add snd_ctl_rename() 2022-10-21 08:17:08 +02:00
core.h
cs35l33.h
cs35l34.h
cs35l35.h
cs35l36.h
cs35l41.h
cs42l42.h
cs42l52.h
cs42l56.h
cs42l73.h
cs4231-regs.h
cs4271.h
cs8403.h
cs8427.h
da7213.h
da7218.h
da7219-aad.h
da7219.h
da9055.h
designware_i2s.h
dmaengine_pcm.h
emu10k1.h
emu10k1_synth.h
emu8000.h
emu8000_reg.h
emux_legacy.h
emux_synth.h
es1688.h
graph_card.h
gus.h
hda_chmap.h
hda_codec.h ALSA: hda/hdmi: fix stream-id config keep-alive for rt suspend 2022-12-09 12:06:15 +01:00
hda_component.h
hda_hwdep.h
hda_i915.h
hda_register.h
hda_regmap.h
hda_verbs.h
hdaudio.h ALSA: hda: Introduce snd_hdac_stream_wait_drsm() 2022-10-28 13:04:33 +01:00
hdaudio_ext.h ALSA: hda: Allow for compress stream to hdac_ext_stream assignment 2022-12-05 14:05:18 +00:00
hdmi-codec.h ASoC: hdmi-codec: Allow playback and capture to be disabled 2022-12-02 14:07:12 +00:00
hwdep.h
i2c.h
info.h
initval.h
intel-dsp-config.h
intel-nhlt.h
jack.h
l3.h
madera-pdata.h
max9768.h
max98088.h
max98090.h
max98095.h
memalloc.h
minors.h
mixer_oss.h
mpu401.h
omap-hdmi-audio.h
opl3.h
opl4.h
pcm-indirect.h
pcm.h ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT 2022-11-23 07:56:47 +01:00
pcm_drm_eld.h
pcm_iec958.h
pcm_oss.h
pcm_params.h
pt2258.h
pxa2xx-lib.h
rawmidi.h
rt286.h
rt298.h
rt1015.h
rt5514.h
rt5659.h
rt5660.h
rt5663.h
rt5665.h
rt5668.h
rt5682.h
rt5682s.h
s3c24xx_uda134x.h
sb.h
sb16_csp.h
sdw.h sound: sdw: Add hw_params to SoundWire config helper function 2022-11-28 13:04:24 +00:00
seq_device.h
seq_kernel.h
seq_midi_emul.h
seq_midi_event.h
seq_oss.h
seq_oss_legacy.h
seq_virmidi.h
sh_dac_audio.h
sh_fsi.h
simple_card.h
simple_card_utils.h ASoC: simple-card-utils: remove asoc_simple_convert_fixup() 2022-11-07 13:58:05 +00:00
snd_wavefront.h
soc-acpi-intel-match.h
soc-acpi.h
soc-card.h
soc-component.h
soc-dai.h
soc-dapm.h ASoC: soc-dapm.h: fixup comment for snd_soc_dapm_widget_for_each_path() 2022-10-19 13:05:33 +01:00
soc-dpcm.h ASoC: soc-dpcm.h: remove snd_soc_dpcm::hw_param 2022-10-19 13:05:34 +01:00
soc-jack.h
soc-link.h
soc-topology.h
soc.h
sof.h ASoC: SOF: Add path definition for external firmware libraries 2022-10-21 13:05:03 +01:00
soundfont.h
spear_dma.h
spear_spdif.h
sta32x.h
sta350.h
tas2552-plat.h
tas5086.h
tea6330t.h
timer.h
tlv.h
tlv320aic32x4.h
tlv320dac33-plat.h
tpa6130a2-plat.h
uda134x.h
uda1380.h
util_mem.h
vx_core.h
wavefront.h
wm0010.h
wm1250-ev1.h
wm2000.h
wm2200.h
wm5100.h
wm8903.h
wm8904.h
wm8955.h
wm8960.h
wm8962.h
wm8993.h
wm8996.h
wm9081.h
wm9090.h
wss.h