aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/sound/soc/dapm.rst18
-rw-r--r--include/sound/soc-dapm.h7
-rw-r--r--include/uapi/sound/asoc.h10
-rw-r--r--sound/soc/soc-topology.c8
4 files changed, 42 insertions, 1 deletions
diff --git a/Documentation/sound/soc/dapm.rst b/Documentation/sound/soc/dapm.rst
index a27f42befa4d..8e44107933ab 100644
--- a/Documentation/sound/soc/dapm.rst
+++ b/Documentation/sound/soc/dapm.rst
@@ -105,6 +105,24 @@ Pre
105 Special PRE widget (exec before all others) 105 Special PRE widget (exec before all others)
106Post 106Post
107 Special POST widget (exec after all others) 107 Special POST widget (exec after all others)
108Buffer
109 Inter widget audio data buffer within a DSP.
110Scheduler
111 DSP internal scheduler that schedules component/pipeline processing
112 work.
113Effect
114 Widget that performs an audio processing effect.
115SRC
116 Sample Rate Converter within DSP or CODEC
117ASRC
118 Asynchronous Sample Rate Converter within DSP or CODEC
119Encoder
120 Widget that encodes audio data from one format (usually PCM) to another
121 usually more compressed format.
122Decoder
123 Widget that decodes audio data from a compressed format to an
124 uncompressed format like PCM.
125
108 126
109(Widgets are defined in include/sound/soc-dapm.h) 127(Widgets are defined in include/sound/soc-dapm.h)
110 128
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
index a466f4bdc835..344b96c206a3 100644
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -510,6 +510,13 @@ enum snd_soc_dapm_type {
510 snd_soc_dapm_dai_out, 510 snd_soc_dapm_dai_out,
511 snd_soc_dapm_dai_link, /* link between two DAI structures */ 511 snd_soc_dapm_dai_link, /* link between two DAI structures */
512 snd_soc_dapm_kcontrol, /* Auto-disabled kcontrol */ 512 snd_soc_dapm_kcontrol, /* Auto-disabled kcontrol */
513 snd_soc_dapm_buffer, /* DSP/CODEC internal buffer */
514 snd_soc_dapm_scheduler, /* DSP/CODEC internal scheduler */
515 snd_soc_dapm_effect, /* DSP/CODEC effect component */
516 snd_soc_dapm_src, /* DSP/CODEC SRC component */
517 snd_soc_dapm_asrc, /* DSP/CODEC ASRC component */
518 snd_soc_dapm_encoder, /* FW/SW audio encoder component */
519 snd_soc_dapm_decoder, /* FW/SW audio decoder component */
513}; 520};
514 521
515enum snd_soc_dapm_subclass { 522enum snd_soc_dapm_subclass {
diff --git a/include/uapi/sound/asoc.h b/include/uapi/sound/asoc.h
index 6702533c8bd8..78014ec56357 100644
--- a/include/uapi/sound/asoc.h
+++ b/include/uapi/sound/asoc.h
@@ -73,7 +73,15 @@
73#define SND_SOC_TPLG_DAPM_DAI_IN 13 73#define SND_SOC_TPLG_DAPM_DAI_IN 13
74#define SND_SOC_TPLG_DAPM_DAI_OUT 14 74#define SND_SOC_TPLG_DAPM_DAI_OUT 14
75#define SND_SOC_TPLG_DAPM_DAI_LINK 15 75#define SND_SOC_TPLG_DAPM_DAI_LINK 15
76#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DAI_LINK 76#define SND_SOC_TPLG_DAPM_BUFFER 16
77#define SND_SOC_TPLG_DAPM_SCHEDULER 17
78#define SND_SOC_TPLG_DAPM_EFFECT 18
79#define SND_SOC_TPLG_DAPM_SIGGEN 19
80#define SND_SOC_TPLG_DAPM_SRC 20
81#define SND_SOC_TPLG_DAPM_ASRC 21
82#define SND_SOC_TPLG_DAPM_ENCODER 22
83#define SND_SOC_TPLG_DAPM_DECODER 23
84#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DECODER
77 85
78/* Header magic number and string sizes */ 86/* Header magic number and string sizes */
79#define SND_SOC_TPLG_MAGIC 0x41536F43 /* ASoC */ 87#define SND_SOC_TPLG_MAGIC 0x41536F43 /* ASoC */
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 002772e3ba2c..dd3a391476ae 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -242,6 +242,14 @@ static const struct soc_tplg_map dapm_map[] = {
242 {SND_SOC_TPLG_DAPM_DAI_IN, snd_soc_dapm_dai_in}, 242 {SND_SOC_TPLG_DAPM_DAI_IN, snd_soc_dapm_dai_in},
243 {SND_SOC_TPLG_DAPM_DAI_OUT, snd_soc_dapm_dai_out}, 243 {SND_SOC_TPLG_DAPM_DAI_OUT, snd_soc_dapm_dai_out},
244 {SND_SOC_TPLG_DAPM_DAI_LINK, snd_soc_dapm_dai_link}, 244 {SND_SOC_TPLG_DAPM_DAI_LINK, snd_soc_dapm_dai_link},
245 {SND_SOC_TPLG_DAPM_BUFFER, snd_soc_dapm_buffer},
246 {SND_SOC_TPLG_DAPM_SCHEDULER, snd_soc_dapm_scheduler},
247 {SND_SOC_TPLG_DAPM_EFFECT, snd_soc_dapm_effect},
248 {SND_SOC_TPLG_DAPM_SIGGEN, snd_soc_dapm_siggen},
249 {SND_SOC_TPLG_DAPM_SRC, snd_soc_dapm_src},
250 {SND_SOC_TPLG_DAPM_ASRC, snd_soc_dapm_asrc},
251 {SND_SOC_TPLG_DAPM_ENCODER, snd_soc_dapm_encoder},
252 {SND_SOC_TPLG_DAPM_DECODER, snd_soc_dapm_decoder},
245}; 253};
246 254
247static int tplc_chan_get_reg(struct soc_tplg *tplg, 255static int tplc_chan_get_reg(struct soc_tplg *tplg,