linux_dsm_epyc7002/sound/soc
Takashi Iwai 3d21ef0b49 ALSA: pcm: Suspend streams globally via device type PM ops
Until now we rely on each driver calling snd_pcm_suspend*() explicitly
at its own PM handling.  However, this can be done far more easily by
setting the PM ops to each actual snd_pcm device object.

This patch adds the device_type object for PCM stream and assigns to
each PCM stream object.  The type contains only the PM ops for system
suspend; we don't need to deal with the resume in general.

The suspend hook simply calls snd_pcm_suspend_all() for the given PCM
streams.  This implies that the PM order is correctly put, i.e. PCM is
suspended before the main (or codec) driver, which should be true in
general.  If a special ordering is needed, you'd need to adjust the
device PM order manually later.

This patch introduces a new flag, snd_pcm.no_device_suspend, too.
With this flag set, the PCM device object won't invoke
snd_pcm_suspend_all() by itself.  This is needed for ASoC who wants to
manage the PM call orders in its serialized way, and the flag is set
in soc_new_pcm() as default.

For the non-ASoC world, we can get rid of the manual snd_pcm_suspend
calls.  This will be done in the later patches.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-01-15 17:46:36 +01:00
..
adi
amd ASoC: use dma_ops of parent device for acp_audio_dma 2018-12-06 12:55:28 +00:00
atmel ASoC: atmel: add SND_SOC_I2C_AND_SPI dependency 2018-09-27 23:22:40 +01:00
au1x treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
bcm ASoC: bcm: use devm_snd_soc_register_component() 2018-09-10 15:13:12 +01:00
cirrus ASoC: cirrus: i2s: IRQ-based stream watchdog 2018-05-11 11:27:33 +09:00
codecs ASoC: Updates for v4.21 2018-12-18 14:59:56 +01:00
dwc Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/es7134', 'asoc/topic/es8316', 'asoc/topic/es8328' and 'asoc/topic/fsl' into asoc-next 2018-03-28 10:29:36 +08:00
fsl ASoC: fsl: Fix SND_SOC_EUKREA_TLV320 build error on i.MX8M 2018-12-13 11:01:51 +00:00
generic ASoC: simple-card: tidyup prefix for snd_soc_codec_conf 2018-12-14 11:48:57 +00:00
hisilicon ASoC: hisilicon: fix fall-through annotations 2018-09-17 10:30:23 -07:00
img treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
intel ALSA: hda - Revert DSP detection on legacy HD-audio driver 2019-01-01 20:43:01 +01:00
jz4740
kirkwood ASoC: Remove depends on HAS_DMA in case of platform dependency 2018-04-18 11:17:09 +01:00
mediatek ASoC: Convert a few more users to using %pOFn instead of device_node.name 2018-11-16 19:07:35 -08:00
meson ASoC: meson: fix do_div warning in spdifin 2018-12-13 16:20:28 +00:00
mxs
nuc900 ASoC: nuc900: use devm_snd_soc_register_component() 2018-09-10 15:14:14 +01:00
pxa ASoC: pxa: remove raumfeld machine driver 2018-12-03 15:28:29 +00:00
qcom ASoC: qdsp6: q6routing: add display_port_rx port routing 2018-12-14 12:48:59 +00:00
rockchip ASoC: rockchip: add missing slave_config setting for I2S 2018-11-13 10:06:23 -08:00
samsung ASoC: add for_each_card_prelinks() macro 2018-09-20 10:18:34 -07:00
sh Merge branch 'for-4.20' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-4.21 intel dep 2018-12-13 14:36:46 +00:00
sirf ASoC: sirf: Fix potential NULL pointer dereference 2018-07-30 12:02:30 +01:00
spear
sti ASoC: sti: Use snd_pcm_stop_xrun() helper 2018-07-04 15:41:35 +01:00
stm ASoC: Convert a few more users to using %pOFn instead of device_node.name 2018-11-16 19:07:35 -08:00
sunxi Merge branch 'for-4.20' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-4.21 intel dep 2018-12-13 14:36:46 +00:00
tegra ASoC: tegra_sgtl5000: fix device_node refcounting 2018-10-17 19:51:22 +01:00
ti ASoC: ti: Kconfig: Remove the deprecated options 2018-12-18 12:23:17 +00:00
txx9 ASoC: txx9: use devm_snd_soc_register_component() 2018-09-10 15:14:47 +01:00
uniphier ASoC: uniphier: change functions to static 2018-07-30 12:02:32 +01:00
ux500
xilinx ASoC: xlnx: enable i2s driver build 2018-12-13 15:31:17 +00:00
xtensa ASoC: xtfpga-i2s: replace platform to component 2018-02-12 11:45:32 +00:00
zte ASoC: zte: Fix incorrect PCM format bit usages 2018-07-26 15:48:19 +01:00
Kconfig ASoC: ti: Merge davinci and omap directories 2018-12-18 12:22:43 +00:00
Makefile ASoC: ti: Merge davinci and omap directories 2018-12-18 12:22:43 +00:00
soc-ac97.c ASoC: ac97: convert to SPDX identifiers 2018-07-02 10:56:09 +01:00
soc-acpi.c ASoC: acpi: fix: continue searching when machine is ignored 2018-11-20 16:53:17 +00:00
soc-compress.c ASoC: add for_each_dpcm_be() macro 2018-09-20 10:31:20 -07:00
soc-core.c ASoC: core: Invoke pcm_new() for all DAI-link 2018-12-13 17:54:07 +00:00
soc-dapm.c ASoC: dapm: Add support for hw_free on CODEC to CODEC links 2018-10-19 13:08:27 +01:00
soc-devres.c ASoC: soc-devres.c: convert to SPDX identifiers 2018-07-02 10:55:22 +01:00
soc-generic-dmaengine-pcm.c DMAengine updates for v4.19-rc1 2018-08-18 15:55:59 -07:00
soc-io.c ASoC: soc-io.c: convert to SPDX identifiers 2018-07-02 10:53:55 +01:00
soc-jack.c ASoC: soc-jack.c: convert to SPDX identifiers 2018-07-02 10:55:12 +01:00
soc-ops.c ASoC: Fix UBSAN warning at snd_soc_get/put_volsw_sx() 2018-09-11 11:58:52 +01:00
soc-pcm.c ALSA: pcm: Suspend streams globally via device type PM ops 2019-01-15 17:46:36 +01:00
soc-topology.c ASoC: topology: Use the standard fall-through annotations 2018-10-05 12:38:22 +01:00
soc-utils.c ASoC: soc-utils: Rename dummy_dma_ops to snd_dummy_dma_ops 2018-09-27 23:15:46 +01:00