* [PATCHv4] ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs.
@ 2017-06-29 13:22 Liam Girdwood
2017-06-29 13:22 ` [PATCH] ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load Liam Girdwood
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Liam Girdwood @ 2017-06-29 13:22 UTC (permalink / raw)
To: alsa-devel; +Cc: Liam Girdwood, Mark Brown
Add some DAPM widget types to better support the construction of DAPM
graphs within DSPs.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
---
Chnages V3.
o Go back to the original widget type plan and replace pipeline with
scheduler widget.
Changes V2.
o No need for multiple types since core does not care.
Changes v1.
o Added some documentation.
o Split codec widget into encoder and decoder to avoid confusion with HW
CODECS.
Documentation/sound/soc/dapm.rst | 18 ++++++++++++++++++
include/sound/soc-dapm.h | 7 +++++++
include/uapi/sound/asoc.h | 10 +++++++++-
sound/soc/soc-topology.c | 8 ++++++++
4 files changed, 42 insertions(+), 1 deletion(-)
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
Special PRE widget (exec before all others)
Post
Special POST widget (exec after all others)
+Buffer
+ Inter widget audio data buffer within a DSP.
+Scheduler
+ DSP internal scheduler that schedules component/pipeline processing
+ work.
+Effect
+ Widget that performs an audio processing effect.
+SRC
+ Sample Rate Converter within DSP or CODEC
+ASRC
+ Asynchronous Sample Rate Converter within DSP or CODEC
+Encoder
+ Widget that encodes audio data from one format (usually PCM) to another
+ usually more compressed format.
+Decoder
+ Widget that decodes audio data from a compressed format to an
+ uncompressed format like PCM.
+
(Widgets are defined in include/sound/soc-dapm.h)
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 {
snd_soc_dapm_dai_out,
snd_soc_dapm_dai_link, /* link between two DAI structures */
snd_soc_dapm_kcontrol, /* Auto-disabled kcontrol */
+ snd_soc_dapm_buffer, /* DSP/CODEC internal buffer */
+ snd_soc_dapm_scheduler, /* DSP/CODEC internal scheduler */
+ snd_soc_dapm_effect, /* DSP/CODEC effect component */
+ snd_soc_dapm_src, /* DSP/CODEC SRC component */
+ snd_soc_dapm_asrc, /* DSP/CODEC ASRC component */
+ snd_soc_dapm_encoder, /* FW/SW audio encoder component */
+ snd_soc_dapm_decoder, /* FW/SW audio decoder component */
};
enum 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 @@
#define SND_SOC_TPLG_DAPM_DAI_IN 13
#define SND_SOC_TPLG_DAPM_DAI_OUT 14
#define SND_SOC_TPLG_DAPM_DAI_LINK 15
-#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DAI_LINK
+#define SND_SOC_TPLG_DAPM_BUFFER 16
+#define SND_SOC_TPLG_DAPM_SCHEDULER 17
+#define SND_SOC_TPLG_DAPM_EFFECT 18
+#define SND_SOC_TPLG_DAPM_SIGGEN 19
+#define SND_SOC_TPLG_DAPM_SRC 20
+#define SND_SOC_TPLG_DAPM_ASRC 21
+#define SND_SOC_TPLG_DAPM_ENCODER 22
+#define SND_SOC_TPLG_DAPM_DECODER 23
+#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DECODER
/* Header magic number and string sizes */
#define SND_SOC_TPLG_MAGIC 0x41536F43 /* ASoC */
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 12e189701924..10797d74a700 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[] = {
{SND_SOC_TPLG_DAPM_DAI_IN, snd_soc_dapm_dai_in},
{SND_SOC_TPLG_DAPM_DAI_OUT, snd_soc_dapm_dai_out},
{SND_SOC_TPLG_DAPM_DAI_LINK, snd_soc_dapm_dai_link},
+ {SND_SOC_TPLG_DAPM_BUFFER, snd_soc_dapm_buffer},
+ {SND_SOC_TPLG_DAPM_SCHEDULER, snd_soc_dapm_scheduler},
+ {SND_SOC_TPLG_DAPM_EFFECT, snd_soc_dapm_effect},
+ {SND_SOC_TPLG_DAPM_SIGGEN, snd_soc_dapm_siggen},
+ {SND_SOC_TPLG_DAPM_SRC, snd_soc_dapm_src},
+ {SND_SOC_TPLG_DAPM_ASRC, snd_soc_dapm_asrc},
+ {SND_SOC_TPLG_DAPM_ENCODER, snd_soc_dapm_encoder},
+ {SND_SOC_TPLG_DAPM_DECODER, snd_soc_dapm_decoder},
};
static int tplc_chan_get_reg(struct soc_tplg *tplg,
--
2.11.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH] ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load
2017-06-29 13:22 [PATCHv4] ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs Liam Girdwood
@ 2017-06-29 13:22 ` Liam Girdwood
2017-06-30 11:59 ` Applied "ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load" to the asoc tree Mark Brown
2017-06-29 13:22 ` [PATCH] ASoC: topology: show index in debug when adding DAPM routes Liam Girdwood
2017-06-30 11:59 ` Applied "ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs." " Mark Brown
2 siblings, 1 reply; 6+ messages in thread
From: Liam Girdwood @ 2017-06-29 13:22 UTC (permalink / raw)
To: alsa-devel; +Cc: Liam Girdwood, Mark Brown
SND_SOC_TPLG_INDEX_ALL is used by drivers to tell the core to load
all topology component indexes, not just the index in the header.
Fix this so that SND_SOC_TPLG_INDEX_ALL will load all components no matter
their index.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
---
sound/soc/soc-topology.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 10797d74a700..06fb7c4c664a 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -2389,7 +2389,7 @@ static int soc_tplg_load_header(struct soc_tplg *tplg,
/* check for matching ID */
if (hdr->index != tplg->req_index &&
- hdr->index != SND_SOC_TPLG_INDEX_ALL)
+ tplg->req_index != SND_SOC_TPLG_INDEX_ALL)
return 0;
tplg->index = hdr->index;
--
2.11.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH] ASoC: topology: show index in debug when adding DAPM routes
2017-06-29 13:22 [PATCHv4] ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs Liam Girdwood
2017-06-29 13:22 ` [PATCH] ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load Liam Girdwood
@ 2017-06-29 13:22 ` Liam Girdwood
2017-06-30 11:59 ` Applied "ASoC: topology: show index in debug when adding DAPM routes" to the asoc tree Mark Brown
2017-06-30 11:59 ` Applied "ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs." " Mark Brown
2 siblings, 1 reply; 6+ messages in thread
From: Liam Girdwood @ 2017-06-29 13:22 UTC (permalink / raw)
To: alsa-devel; +Cc: Liam Girdwood, Mark Brown
Makes the debug output much more useful.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
---
sound/soc/soc-topology.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 06fb7c4c664a..dd471d2c0266 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -1171,7 +1171,8 @@ static int soc_tplg_dapm_graph_elems_load(struct soc_tplg *tplg,
return -EINVAL;
}
- dev_dbg(tplg->dev, "ASoC: adding %d DAPM routes\n", count);
+ dev_dbg(tplg->dev, "ASoC: adding %d DAPM routes for index %d\n", count,
+ hdr->index);
for (i = 0; i < count; i++) {
elem = (struct snd_soc_tplg_dapm_graph_elem *)tplg->pos;
--
2.11.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Applied "ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs." to the asoc tree
2017-06-29 13:22 [PATCHv4] ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs Liam Girdwood
2017-06-29 13:22 ` [PATCH] ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load Liam Girdwood
2017-06-29 13:22 ` [PATCH] ASoC: topology: show index in debug when adding DAPM routes Liam Girdwood
@ 2017-06-30 11:59 ` Mark Brown
2 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2017-06-30 11:59 UTC (permalink / raw)
To: Liam Girdwood; +Cc: alsa-devel, Mark Brown
The patch
ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs.
has been applied to the asoc tree at
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
>From 8a70b4544ef4f094cc2c52734e097cc358f56603 Mon Sep 17 00:00:00 2001
From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Date: Thu, 29 Jun 2017 14:22:24 +0100
Subject: [PATCH] ASoC: dapm: Add new widget type for constructing DAPM graphs
on DSPs.
Add some DAPM widget types to better support the construction of DAPM
graphs within DSPs.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
Documentation/sound/soc/dapm.rst | 18 ++++++++++++++++++
include/sound/soc-dapm.h | 7 +++++++
include/uapi/sound/asoc.h | 10 +++++++++-
sound/soc/soc-topology.c | 8 ++++++++
4 files changed, 42 insertions(+), 1 deletion(-)
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
Special PRE widget (exec before all others)
Post
Special POST widget (exec after all others)
+Buffer
+ Inter widget audio data buffer within a DSP.
+Scheduler
+ DSP internal scheduler that schedules component/pipeline processing
+ work.
+Effect
+ Widget that performs an audio processing effect.
+SRC
+ Sample Rate Converter within DSP or CODEC
+ASRC
+ Asynchronous Sample Rate Converter within DSP or CODEC
+Encoder
+ Widget that encodes audio data from one format (usually PCM) to another
+ usually more compressed format.
+Decoder
+ Widget that decodes audio data from a compressed format to an
+ uncompressed format like PCM.
+
(Widgets are defined in include/sound/soc-dapm.h)
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 {
snd_soc_dapm_dai_out,
snd_soc_dapm_dai_link, /* link between two DAI structures */
snd_soc_dapm_kcontrol, /* Auto-disabled kcontrol */
+ snd_soc_dapm_buffer, /* DSP/CODEC internal buffer */
+ snd_soc_dapm_scheduler, /* DSP/CODEC internal scheduler */
+ snd_soc_dapm_effect, /* DSP/CODEC effect component */
+ snd_soc_dapm_src, /* DSP/CODEC SRC component */
+ snd_soc_dapm_asrc, /* DSP/CODEC ASRC component */
+ snd_soc_dapm_encoder, /* FW/SW audio encoder component */
+ snd_soc_dapm_decoder, /* FW/SW audio decoder component */
};
enum 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 @@
#define SND_SOC_TPLG_DAPM_DAI_IN 13
#define SND_SOC_TPLG_DAPM_DAI_OUT 14
#define SND_SOC_TPLG_DAPM_DAI_LINK 15
-#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DAI_LINK
+#define SND_SOC_TPLG_DAPM_BUFFER 16
+#define SND_SOC_TPLG_DAPM_SCHEDULER 17
+#define SND_SOC_TPLG_DAPM_EFFECT 18
+#define SND_SOC_TPLG_DAPM_SIGGEN 19
+#define SND_SOC_TPLG_DAPM_SRC 20
+#define SND_SOC_TPLG_DAPM_ASRC 21
+#define SND_SOC_TPLG_DAPM_ENCODER 22
+#define SND_SOC_TPLG_DAPM_DECODER 23
+#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DECODER
/* Header magic number and string sizes */
#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[] = {
{SND_SOC_TPLG_DAPM_DAI_IN, snd_soc_dapm_dai_in},
{SND_SOC_TPLG_DAPM_DAI_OUT, snd_soc_dapm_dai_out},
{SND_SOC_TPLG_DAPM_DAI_LINK, snd_soc_dapm_dai_link},
+ {SND_SOC_TPLG_DAPM_BUFFER, snd_soc_dapm_buffer},
+ {SND_SOC_TPLG_DAPM_SCHEDULER, snd_soc_dapm_scheduler},
+ {SND_SOC_TPLG_DAPM_EFFECT, snd_soc_dapm_effect},
+ {SND_SOC_TPLG_DAPM_SIGGEN, snd_soc_dapm_siggen},
+ {SND_SOC_TPLG_DAPM_SRC, snd_soc_dapm_src},
+ {SND_SOC_TPLG_DAPM_ASRC, snd_soc_dapm_asrc},
+ {SND_SOC_TPLG_DAPM_ENCODER, snd_soc_dapm_encoder},
+ {SND_SOC_TPLG_DAPM_DECODER, snd_soc_dapm_decoder},
};
static int tplc_chan_get_reg(struct soc_tplg *tplg,
--
2.13.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Applied "ASoC: topology: show index in debug when adding DAPM routes" to the asoc tree
2017-06-29 13:22 ` [PATCH] ASoC: topology: show index in debug when adding DAPM routes Liam Girdwood
@ 2017-06-30 11:59 ` Mark Brown
0 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2017-06-30 11:59 UTC (permalink / raw)
To: Liam Girdwood; +Cc: alsa-devel, Mark Brown
The patch
ASoC: topology: show index in debug when adding DAPM routes
has been applied to the asoc tree at
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
>From b75a65118d287aadeade8b106ed0da7b5e42c167 Mon Sep 17 00:00:00 2001
From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Date: Thu, 29 Jun 2017 14:22:26 +0100
Subject: [PATCH] ASoC: topology: show index in debug when adding DAPM routes
Makes the debug output much more useful.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/soc-topology.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 6070e35455aa..73308e6d3729 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -1163,7 +1163,8 @@ static int soc_tplg_dapm_graph_elems_load(struct soc_tplg *tplg,
return -EINVAL;
}
- dev_dbg(tplg->dev, "ASoC: adding %d DAPM routes\n", count);
+ dev_dbg(tplg->dev, "ASoC: adding %d DAPM routes for index %d\n", count,
+ hdr->index);
for (i = 0; i < count; i++) {
elem = (struct snd_soc_tplg_dapm_graph_elem *)tplg->pos;
--
2.13.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Applied "ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load" to the asoc tree
2017-06-29 13:22 ` [PATCH] ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load Liam Girdwood
@ 2017-06-30 11:59 ` Mark Brown
0 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2017-06-30 11:59 UTC (permalink / raw)
To: Liam Girdwood; +Cc: alsa-devel, Mark Brown
The patch
ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load
has been applied to the asoc tree at
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
>From bb97142bcf8c042103e87d035a120f522d12e788 Mon Sep 17 00:00:00 2001
From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Date: Thu, 29 Jun 2017 14:22:25 +0100
Subject: [PATCH] ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during
load
SND_SOC_TPLG_INDEX_ALL is used by drivers to tell the core to load
all topology component indexes, not just the index in the header.
Fix this so that SND_SOC_TPLG_INDEX_ALL will load all components no matter
their index.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/soc-topology.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index 12e189701924..6070e35455aa 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -2381,7 +2381,7 @@ static int soc_tplg_load_header(struct soc_tplg *tplg,
/* check for matching ID */
if (hdr->index != tplg->req_index &&
- hdr->index != SND_SOC_TPLG_INDEX_ALL)
+ tplg->req_index != SND_SOC_TPLG_INDEX_ALL)
return 0;
tplg->index = hdr->index;
--
2.13.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-06-30 11:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-29 13:22 [PATCHv4] ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs Liam Girdwood
2017-06-29 13:22 ` [PATCH] ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load Liam Girdwood
2017-06-30 11:59 ` Applied "ASoC: topology: Fix usage of SND_SOC_TPLG_INDEX_ALL during load" to the asoc tree Mark Brown
2017-06-29 13:22 ` [PATCH] ASoC: topology: show index in debug when adding DAPM routes Liam Girdwood
2017-06-30 11:59 ` Applied "ASoC: topology: show index in debug when adding DAPM routes" to the asoc tree Mark Brown
2017-06-30 11:59 ` Applied "ASoC: dapm: Add new widget type for constructing DAPM graphs on DSPs." " Mark Brown
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.