| ca5ce0ca | 21-Mar-2023 |
Jyri Sarha <[email protected]> |
ASoC: SOF: ipc4/intel: Add support for chained DMA
Add logic for setting up and tearing down chained DMA connections.
Since pipelines are not used, all the logic to set the pipeline states can be b
ASoC: SOF: ipc4/intel: Add support for chained DMA
Add logic for setting up and tearing down chained DMA connections.
Since pipelines are not used, all the logic to set the pipeline states can be bypassed, with only the DMA programming sequences remaining. In addition the same format needs to be used for host- and link-DMA, without the usual fixup to use the S32_LE format on the link.
Note however that for convenience and compatibility with existing definitions, the topology relies on the concept of pipelines with a 'USE_CHAIN_DMA' token indicating that all the logic shall be bypassed.
Unlike 'normal' ALSA sequences, the chain DMA is not programmed in hw_params/hw_free. The IPC message to set-up and tear-down chained DMA are sent in sof_ipc4_trigger_pipelines(), but the contents prepared earlier.
Chained DMA is only supported by the Intel HDA DAI for now, and only S16_LE and S32_LE formats are supported for now.
Signed-off-by: Jyri Sarha <[email protected]> Reviewed-by: Rander Wang <[email protected]> Signed-off-by: Peter Ujfalusi <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
show more ...
/linux-6.15/Documentation/devicetree/bindings/sound/adi,adau1372.yaml/linux-6.15/Documentation/devicetree/bindings/sound/adi,adau17x1.yaml/linux-6.15/Documentation/devicetree/bindings/sound/adi,max98396.yaml/linux-6.15/Documentation/devicetree/bindings/sound/audio-graph-port.yaml/linux-6.15/Documentation/devicetree/bindings/sound/audio-graph.yaml/linux-6.15/Documentation/devicetree/bindings/sound/cirrus,cs35l45.yaml/linux-6.15/Documentation/devicetree/bindings/sound/cirrus,cs42l42.yaml/linux-6.15/Documentation/devicetree/bindings/sound/everest,es8316.yaml/linux-6.15/Documentation/devicetree/bindings/sound/maxim,max9759.yaml/linux-6.15/Documentation/devicetree/bindings/sound/mt8186-afe-pcm.yaml/linux-6.15/Documentation/devicetree/bindings/sound/mt8186-mt6366-da7219-max98357.yaml/linux-6.15/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml/linux-6.15/Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml/linux-6.15/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml/linux-6.15/Documentation/devicetree/bindings/sound/mt8195-afe-pcm.yaml/linux-6.15/Documentation/devicetree/bindings/sound/mt8195-mt6359.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-common.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max9808x.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5631.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5677.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.yaml/linux-6.15/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.yaml/linux-6.15/Documentation/devicetree/bindings/sound/qcom,q6asm-dais.yaml/linux-6.15/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml/linux-6.15/Documentation/devicetree/bindings/sound/rockchip,i2s-tdm.yaml/linux-6.15/Documentation/devicetree/bindings/sound/rockchip-i2s.yaml/linux-6.15/Documentation/devicetree/bindings/sound/sgtl5000.yaml/linux-6.15/Documentation/devicetree/bindings/sound/simple-card.yaml/linux-6.15/Documentation/devicetree/bindings/sound/socionext,uniphier-aio.yaml/linux-6.15/drivers/soc/fsl/qe/Kconfig/linux-6.15/include/sound/soc-dpcm.h/linux-6.15/include/sound/sof/ipc4/header.htokens.h/linux-6.15/sound/soc/fsl/fsl-asoc-card.c/linux-6.15/sound/soc/mediatek/mt8192/mt8192-afe-clk.c/linux-6.15/sound/soc/mediatek/mt8192/mt8192-afe-pcm.c/linux-6.15/sound/soc/mediatek/mt8192/mt8192-dai-tdm.c/linux-6.15/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c/linux-6.15/sound/soc/rockchip/rockchip_i2s.c/linux-6.15/sound/soc/soc-compress.c/linux-6.15/sound/soc/soc-dai.c/linux-6.15/sound/soc/soc-pcm.c/linux-6.15/sound/soc/sof/intel/hda-dai-ops.c/linux-6.15/sound/soc/sof/ipc4-pcm.c/linux-6.15/sound/soc/sof/ipc4-topology.c/linux-6.15/sound/soc/sof/ipc4-topology.h/linux-6.15/sound/soc/sof/topology.c/linux-6.15/sound/soc/tegra/Kconfig/linux-6.15/sound/soc/tegra/tegra_asoc_machine.c |
| 4fdef47a | 13-Mar-2023 |
Ranjani Sridharan <[email protected]> |
ASoC: SOF: ipc4-topology: Add new tokens for input/output pin format count
In preparation for handling processing modules with different input/output pin counts, introduce two new tokens for input/o
ASoC: SOF: ipc4-topology: Add new tokens for input/output pin format count
In preparation for handling processing modules with different input/output pin counts, introduce two new tokens for input/output audio format counts. Use these token values to parse all the available audio formats from topology.
Signed-off-by: Ranjani Sridharan <[email protected]> Reviewed-by: Rander Wang <[email protected]> Reviewed-by: Bard Liao <[email protected]> Reviewed-by: Péter Ujfalusi <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Signed-off-by: Peter Ujfalusi <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
show more ...
|
| 7ab6b1e8 | 13-Mar-2023 |
Ranjani Sridharan <[email protected]> |
ASoC: SOF: ipc4-topology: Modify the type of available input/output formats
Introduce a new struct sof_ipc4_pin_format which contains the pin index and the buffer size. Replace the type of available
ASoC: SOF: ipc4-topology: Modify the type of available input/output formats
Introduce a new struct sof_ipc4_pin_format which contains the pin index and the buffer size. Replace the type of available input/output audio formats in struct sof_ipc4_available_audio_format with this new struct type and rename them to input_pin_fmts and output_pin_fmts.
Also, add a new token, SOF_TKN_CAVS_AUDIO_FORMAT_PIN_INDEX that will be used to parse the pin index for the audio format from topology. Currently we only set the audio format for Pin 0 in topology, so the default value will be 0 for all audio formats.
Finally, parse the pin_index and the input/output buffer sizes along with audio formats into the pin_format arrays in struct sof_ipc4_available_audio_format. This makes the base_config array in struct sof_ipc4_available_audio_format redundant. So remove it. This change will allow the addition of audio formats for the non-zero pins in topology transparent to the topology parser in the kernel.
Signed-off-by: Ranjani Sridharan <[email protected]> Reviewed-by: Rander Wang <[email protected]> Reviewed-by: Bard Liao <[email protected]> Reviewed-by: Péter Ujfalusi <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Signed-off-by: Peter Ujfalusi <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
show more ...
|
| ea4a4e82 | 13-Mar-2023 |
Peter Ujfalusi <[email protected]> |
ASoC: SOF: uapi: header: Update sof_abi_hdr doc for IPC4 use
With IPC4 the sof_abit_hdr is only used between user space (and in topology) and kernel. The same abi header is used with small differenc
ASoC: SOF: uapi: header: Update sof_abi_hdr doc for IPC4 use
With IPC4 the sof_abit_hdr is only used between user space (and in topology) and kernel. The same abi header is used with small differencies like different magic number and the type field have slightly different name, but similar function in IPC4 (param_id).
Update the kernel documentation to highlight the differences.
Signed-off-by: Peter Ujfalusi <[email protected]> Reviewed-by: Bard Liao <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Reviewed-by: Jaska Uimonen <[email protected]> Reviewed-by: Kai Vehmanen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
show more ...
|
| 3b3acedb | 07-Nov-2022 |
Chao Song <[email protected]> |
ASoC: SOF: Add support to parse pin binding array from topology
Add support for parsing sink/source pin binding array per widget from topology. The pin binding arrays will be used to determine the s
ASoC: SOF: Add support to parse pin binding array from topology
Add support for parsing sink/source pin binding array per widget from topology. The pin binding arrays will be used to determine the source and sink queue IDs during widget binding for widget that requires special pin binding.
An example of widget that requires special pin binding is the smart amplifier widget, its feedback sink pin has to be connected to a capture DAI copier for codec feedback, while the other sink pin has to be connected to a host DAI copier. Pin ID is required during widget binding for correct route setup.
Conversely, the pin ID for 'generic' pins is not defined in the topology and will be allocated by the kernel dynamically. When only one pin is supported, the pin ID shall always be zero. When more than one pin is supported, the pin ID is determined with the ID allocation mechanism in the kernel.
Signed-off-by: Chao Song <[email protected]> Signed-off-by: Bard Liao <[email protected]> Suggested-by: Ranjani Sridharan <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Reviewed-by: Rander Wang <[email protected]> Reviewed-by: Péter Ujfalusi <[email protected]> Signed-off-by: Peter Ujfalusi <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
show more ...
|