linux/sound/soc
Daniel Baluta 858f7a5c45
ASoC: SOF: Introduce fragment elapsed notification API
This patch prepares the introduction of the compress API with SOF.

After each fragment is accepted by the DSP we need to inform
the userspace applications that they can send the next fragment.
This is done via snd_compr_fragment_elapsed.

Similar with the PCM case, in order to avoid sending an IPC before
the previous IPC is handled we need to schedule a delayed work to
call snd_compr_fragment_elapsed().

See snd_sof_pcm_period_elapsed.

To sum up this patch offers the following API to SOF code:
	* snd_sof_compr_init_elapsed_work
	* snd_sof_compr_fragment_elapsed

Note that implementation for compressed function is in a new file
selected via CONFIG_SND_SOC_SOF_COMPRESS invisible config option.
This option is automatically selected for platforms that support
the compress interface. For now only i.MX8 platforms support this.

For symmetry we introduce snd_sof_pcm_init_elapsed_work to setup
the work struct for PCM case.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Bud Liviu-Alexandru <budliviu@gmail.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Paul Olaru <paul.olaru@oss.nxp.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20211004152147.1268978-5-daniel.baluta@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2021-10-07 16:57:57 +01:00
..
adi ASoC: axi-i2s: Use devm_platform_get_and_ioremap_resource() 2021-06-14 15:01:03 +01:00
amd ASoC: amd: acp-rt5645: Constify static snd_soc_ops 2021-10-05 13:09:58 +01:00
atmel ASoC: atmel: Convert to new style DAI format definitions 2021-09-16 14:11:30 +01:00
au1x ASoC: au1x: Convert to modern terminology for DAI clocking 2021-09-16 14:11:37 +01:00
bcm ASoC: bcm: Convert to modern clocking terminology 2021-09-27 13:01:09 +01:00
cirrus ASoC: ep93xx: Convert to modern clocking terminology 2021-09-27 13:00:54 +01:00
codecs ASoC: nau8824: Add a nau8824_components() helper 2021-10-04 15:55:29 +01:00
dwc ASoC: dwc-i2s: Update to modern clocking terminology 2021-09-27 13:01:12 +01:00
fsl ASoC: fsl_spdif: implement bypass mode from in to out 2021-10-01 20:56:03 +01:00
generic ASoC: audio-graph: Fixup CPU endpoint hw_params in a BE<->BE link 2021-09-20 13:31:29 +01:00
hisilicon ASoC: hisilicon: Use devm_platform_get_and_ioremap_resource() 2021-06-15 16:39:49 +01:00
img ASoC: img-spdif-out: Use devm_platform_get_and_ioremap_resource() 2021-06-15 16:39:47 +01:00
intel ASoC: Intel: sof_sdw: add missing quirk for Dell SKU 0A45 2021-10-05 13:06:03 +01:00
jz4740 ASoC: jz4740-i2s: Use devm_platform_get_and_ioremap_resource() 2021-06-15 16:39:48 +01:00
kirkwood ASoC: kirkwood: Fix reference to PCM buffer address 2021-07-30 17:20:51 +01:00
mediatek ASoC: mediatek: mt8195: move of_node_put to remove function 2021-10-01 19:35:01 +01:00
meson ASoC: meson: aiu: Fix spelling mistake "Unsupport" -> "Unsupported" 2021-09-27 13:01:07 +01:00
mxs
pxa ALSA: pxa2xx: Use managed PCM buffer allocation 2021-08-04 08:08:21 +02:00
qcom ASoC: qcom: apq8096: Constify static snd_soc_ops 2021-10-01 19:35:05 +01:00
rockchip ASoC: rockchip: pdm: Add support for path map 2021-09-13 01:44:10 +01:00
samsung ASoC: samsung: add missing "fallthrough;" 2021-09-27 13:00:53 +01:00
sh ASoC: rsnd: adg: clearly handle clock error / NULL case 2021-08-20 13:07:26 +01:00
sof ASoC: SOF: Introduce fragment elapsed notification API 2021-10-07 16:57:57 +01:00
spear ASoC: spear: spdif_out: Use devm_platform_get_and_ioremap_resource() 2021-06-17 13:47:06 +01:00
sprd ASoC: sprd: Use managed buffer allocation 2021-08-04 08:10:27 +02:00
sti ASoC: sti: sti_uniperif: Use devm_platform_get_and_ioremap_resource() 2021-06-17 13:47:03 +01:00
stm ASoC: stm32: spdifrx: Use devm_platform_get_and_ioremap_resource() 2021-06-17 13:47:02 +01:00
sunxi ASoC: sunxi: sun4i-spdif: Use devm_platform_get_and_ioremap_resource() 2021-06-21 13:04:18 +01:00
tegra ASoC: tegra: Constify static snd_soc_ops 2021-10-01 19:34:59 +01:00
ti ASoC: ti: Constify static snd_soc_ops 2021-09-29 13:06:37 +01:00
uniphier ASoC: uniphier: make arrays mul and div static const, makes object smaller 2021-08-19 18:21:23 +01:00
ux500 ASoC: ux500: mop500: Constify static snd_soc_ops 2021-09-29 13:06:38 +01:00
xilinx ASoC: xilinx: Fix reference to PCM buffer address 2021-07-30 17:20:50 +01:00
xtensa
Kconfig ASoC: topology: Select SND_DYNAMIC_MINORS 2021-07-27 13:13:04 +01:00
Makefile
soc-ac97.c ASoC: soc-ac97: cleanup cppcheck warning 2021-08-16 13:29:36 +01:00
soc-acpi.c
soc-card.c
soc-component.c ASoC: compress/component: Use module_get_when_open/put_when_close for cstream 2021-09-20 13:30:18 +01:00
soc-compress.c ASoC: compress/component: Use module_get_when_open/put_when_close for cstream 2021-09-20 13:30:18 +01:00
soc-core.c ASoC: soc-core: cleanup cppcheck warning at snd_soc_of_parse_audio_routing() 2021-07-29 15:35:45 +01:00
soc-dai.c ASoC: soc-dai: cleanup cppcheck warning at snd_soc_pcm_dai_new() 2021-08-16 13:29:32 +01:00
soc-dapm.c AsoC: dapm: export a couple of functions 2021-10-01 20:48:23 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: dmaengine: Introduce module option prealloc_buffer_size_kbytes 2021-09-27 13:01:13 +01:00
soc-jack.c ASoC: soc-jack: cleanup cppcheck warning for CONFIG_GPIOLIB 2021-08-16 13:29:34 +01:00
soc-link.c
soc-ops.c ASoC: soc-ops: cleanup cppcheck warning at snd_soc_put_xr_sx() 2021-08-03 18:27:14 +01:00
soc-pcm.c AsoC: dapm: export a couple of functions 2021-10-01 20:48:23 +01:00
soc-topology-test.c
soc-topology.c ASoC: topology: change the complete op in snd_soc_tplg_ops to return int 2021-10-01 20:48:19 +01:00
soc-utils.c ASoC: soc-core: add snd_soc_runtime_get_dai_fmt() 2021-06-07 15:55:12 +01:00