* [PATCH 1/2] ASoC: soc-pcm: Allow to specify unidirectional dai_link @ 2013-08-29 13:32 Fabio Estevam 2013-08-29 13:32 ` [PATCH 2/2] ASoC: mxs-sgtl5000: Configure the dai_links as unidirectional Fabio Estevam 2013-09-01 15:29 ` [PATCH 1/2] ASoC: soc-pcm: Allow to specify unidirectional dai_link Mark Brown 0 siblings, 2 replies; 3+ messages in thread From: Fabio Estevam @ 2013-08-29 13:32 UTC (permalink / raw) To: broonie; +Cc: Fabio Estevam, alsa-devel, lars, shawn.guo 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> --- include/sound/soc.h | 4 ++++ sound/soc/soc-pcm.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/sound/soc.h b/include/sound/soc.h index 8e2ad52..774d3be 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -934,6 +934,10 @@ struct snd_soc_dai_link { /* machine stream operations */ const struct snd_soc_ops *ops; const struct snd_soc_compr_ops *compr_ops; + + /* For unidirectional dai links */ + bool playback_only; + bool capture_only; }; struct snd_soc_codec_conf { diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index fb70fbe..5e44863 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -2020,6 +2020,16 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num) 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 */ if (rtd->dai_link->no_pcm) { snprintf(new_name, sizeof(new_name), "(%s)", -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] ASoC: mxs-sgtl5000: Configure the dai_links as unidirectional 2013-08-29 13:32 [PATCH 1/2] ASoC: soc-pcm: Allow to specify unidirectional dai_link Fabio Estevam @ 2013-08-29 13:32 ` Fabio Estevam 2013-09-01 15:29 ` [PATCH 1/2] ASoC: soc-pcm: Allow to specify unidirectional dai_link Mark Brown 1 sibling, 0 replies; 3+ messages in thread From: Fabio Estevam @ 2013-08-29 13:32 UTC (permalink / raw) To: broonie; +Cc: Fabio Estevam, alsa-devel, lars, shawn.guo On a mx28 board, running "aplay -l" and "arecord -l" results in the following: $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: mxssgtl5000 [mxs_sgtl5000], device 0: Playback sgtl5000-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: mxssgtl5000 [mxs_sgtl5000], device 1: Capture sgtl5000-1 [] Subdevices: 1/1 Subdevice #0: subdevice #0 $ arecord -l **** List of CAPTURE Hardware Devices **** card 0: mxssgtl5000 [mxs_sgtl5000], device 0: Playback sgtl5000-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: mxssgtl5000 [mxs_sgtl5000], device 1: Capture sgtl5000-1 [] Subdevices: 1/1 Subdevice #0: subdevice #0 ,which is not correct because we got a capture device listed in aplay and a playback device listed in arecord. On mx28 there are two serial audio interface ports (SAIF0 and SAIF1) and each one of them are unidirectional. Allow to specify a dai link as 'playback_only' or 'capture_only', which suits well for this case. After this change we can correctly report the capabilities as follows: $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: mxssgtl5000 [mxs_sgtl5000], device 0: HiFi Playback sgtl5000-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 $ arecord -l **** List of CAPTURE Hardware Devices **** card 0: mxssgtl5000 [mxs_sgtl5000], device 1: HiFi Capture sgtl5000-1 [] Subdevices: 1/1 Subdevice #0: subdevice #0 Also tested playback and capture on the mx28evk board. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> --- sound/soc/mxs/mxs-sgtl5000.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/soc/mxs/mxs-sgtl5000.c b/sound/soc/mxs/mxs-sgtl5000.c index ce084eb..4bb2737 100644 --- a/sound/soc/mxs/mxs-sgtl5000.c +++ b/sound/soc/mxs/mxs-sgtl5000.c @@ -105,11 +105,13 @@ static struct snd_soc_dai_link mxs_sgtl5000_dai[] = { .stream_name = "HiFi Playback", .codec_dai_name = "sgtl5000", .ops = &mxs_sgtl5000_hifi_ops, + .playback_only = true, }, { .name = "HiFi Rx", .stream_name = "HiFi Capture", .codec_dai_name = "sgtl5000", .ops = &mxs_sgtl5000_hifi_ops, + .capture_only = true, }, }; -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] ASoC: soc-pcm: Allow to specify unidirectional dai_link 2013-08-29 13:32 [PATCH 1/2] ASoC: soc-pcm: Allow to specify unidirectional dai_link Fabio Estevam 2013-08-29 13:32 ` [PATCH 2/2] ASoC: mxs-sgtl5000: Configure the dai_links as unidirectional Fabio Estevam @ 2013-09-01 15:29 ` Mark Brown 1 sibling, 0 replies; 3+ messages in thread From: Mark Brown @ 2013-09-01 15:29 UTC (permalink / raw) To: Fabio Estevam; +Cc: alsa-devel, lars, shawn.guo [-- Attachment #1.1: Type: text/plain, Size: 217 bytes --] On Thu, Aug 29, 2013 at 10:32:13AM -0300, Fabio Estevam wrote: > Add 'playback_only' and 'capture_only' fields that can be used for specifying > that a dai_link has a unidirectional capability. Applied both, thanks. [-- Attachment #1.2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-09-01 15:30 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-08-29 13:32 [PATCH 1/2] ASoC: soc-pcm: Allow to specify unidirectional dai_link Fabio Estevam 2013-08-29 13:32 ` [PATCH 2/2] ASoC: mxs-sgtl5000: Configure the dai_links as unidirectional Fabio Estevam 2013-09-01 15:29 ` [PATCH 1/2] ASoC: soc-pcm: Allow to specify unidirectional dai_link Mark Brown
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).