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: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
6b4c80f947
commit
d6bead020d
|
@ -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)
|
||||||
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)",
|
||||||
|
|
Loading…
Reference in New Issue