Commit d6bead02 authored by Fabio Estevam's avatar Fabio Estevam Committed by Mark Brown

ASoC: soc-pcm: Allow to specify unidirectional dai_link

Add 'playback_only' and 'capture_only' fields that can be used for specifying
that a dai_link has a unidirectional capability.

The motivation for this is for the cases of systems, such as Freescale MX28,
that has two unidirectional DAIs.
Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 6b4c80f9
...@@ -936,6 +936,10 @@ struct snd_soc_dai_link { ...@@ -936,6 +936,10 @@ struct snd_soc_dai_link {
/* machine stream operations */ /* machine stream operations */
const struct snd_soc_ops *ops; const struct snd_soc_ops *ops;
const struct snd_soc_compr_ops *compr_ops; const struct snd_soc_compr_ops *compr_ops;
/* For unidirectional dai links */
bool playback_only;
bool capture_only;
}; };
struct snd_soc_codec_conf { struct snd_soc_codec_conf {
......
...@@ -2027,6 +2027,16 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num) ...@@ -2027,6 +2027,16 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
capture = 1; capture = 1;
} }
if (rtd->dai_link->playback_only) {
playback = 1;
capture = 0;
}
if (rtd->dai_link->capture_only) {
playback = 0;
capture = 1;
}
/* create the PCM */ /* create the PCM */
if (rtd->dai_link->no_pcm) { if (rtd->dai_link->no_pcm) {
snprintf(new_name, sizeof(new_name), "(%s)", snprintf(new_name, sizeof(new_name), "(%s)",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment