From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: Eric Anholt <eric@anholt.net>, alsa-devel@alsa-project.org
Subject: Re: [RESEND PATCH] conf/cards: add VC4-HDMI card
Date: Mon, 10 Apr 2017 14:35:23 +0200 [thread overview]
Message-ID: <20170410143523.6be657c7@bbrezillon> (raw)
In-Reply-To: <s5hy3v8wj3t.wl-tiwai@suse.de>
On Mon, 10 Apr 2017 14:19:18 +0200
Takashi Iwai <tiwai@suse.de> wrote:
> On Mon, 10 Apr 2017 14:09:11 +0200,
> Boris Brezillon wrote:
> >
> > Eric, Takashi,
> >
> > On Fri, 07 Apr 2017 10:20:20 -0700
> > Eric Anholt <eric@anholt.net> wrote:
> >
> > > Takashi Iwai <tiwai@suse.de> writes:
> > >
> > > > On Thu, 06 Apr 2017 21:46:29 +0200,
> > > > Eric Anholt wrote:
> > > >>
> > > >> Takashi Iwai <tiwai@suse.de> writes:
> > > >>
> > > >> > On Thu, 02 Mar 2017 11:49:33 +0100,
> > > >> > Boris Brezillon wrote:
> > > >> >>
> > > >> >> Add a conf file for the VC4-HDMI sound card.
> > > >> >>
> > > >> >> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> > > >> >> ---
> > > >> >> Hi,
> > > >> >>
> > > >> >> Sorry for the noise, but I didn't send this patch to the alsa-lib
> > > >> >> maintainer on my first attempt.
> > > >> >>
> > > >> >> This patch is adding a card config file for the audio sound card whose
> > > >> >> driver has been submitted here [1] (not accepted yet).
> > > >> >>
> > > >> >> Since I am a total newbie to the alsa world, I'd like to get some
> > > >> >> feedback on this patch.
> > > >> >>
> > > >> >> Also, the card only supports 2 to 8 channels, and I wonder if we should
> > > >> >> add a plug element to support mono streams, and where this element
> > > >> >> should be added (after or before the iec958 element).
> > > >> >
> > > >> > Applied, thanks.
> > > >>
> > > >> Thanks!
> > > >>
> > > >> Any recommendations on how to restructure this so that things like
> > > >> 'aplay' from the console also work by default?
> > > >
> > > > Well, once after you have your card config in
> > > > /usr/share/alsa/cards/vc4-hdmi.conf, aplay should work as is.
> > > >
> > > > If not, check /proc/asounds output. The entry looks like
> > > > 0 [ID ]: DRIVER - SHORTNAME
> > > > LONGNAME
> > > >
> > > > and in your case, "DRIVER" must be "vc4-hdmi", as same as the config
> > > > file name.
> > >
> > > It doesn't work as is -- the default ends up not having iec958
> > > conversion, so nothing will play. You can do aplay -D iec958, which
> > > works but only as long as you've got stereo input (it seems plug can't
> > > do mono-to-stereo on iec958 data)
> >
> > Sorry for being so silent during the past weeks, but I've been busy
> > with other things and was on vacation last week.
>
> Thanks for joining. I was also slow just because I've been sick and
> off in the last week :-< Now getting recovered, and resuming the
> task...
>
> > As Eric explained, we're looking for advices on how to best expose
> > the sound card so that it can be easily used by end-users without
> > requiring advanced options (like -D iec958) or conf tweaking (like
> > declaring an extra plug element before the iec958 one to convert from
> > mono to stereo and then using -D iec958-mono).
> >
> > Takashi, what do you suggest? Is it possible/acceptable to make iec958
> > the default for this card? What about implicit/automatic mono-to-stereo
> > conversion, is it achievable?
>
> Now I looked at your config again, and one likely problem is that you
> wrap plug *before* iec958 plugin.
>
> vc4-hdmi.pcm.iec958.0 {
> .....
> type iec958
> slave {
> format IEC958_SUBFRAME_LE
> pcm {
> type plug
> slave.pcm {
> type hw
> card $CARD
> }
> }
> }
> status [ $AES0 $AES1 $AES2 $AES3 ]
> }
>
> Why do you need to wrap with plug there?
I honestly don't know. As said in my initila submission I'm a total
newbie hence the request for help ;-).
> Instead, it should be
> accessing directly to hw, i.e.
>
> vc4-hdmi.pcm.iec958.0 {
> @args [ CARD AES0 AES1 AES2 AES3 ]
> @args.CARD {
> type string
> }
> @args.AES0 {
> type integer
> }
> @args.AES1 {
> type integer
> }
> @args.AES2 {
> type integer
> }
> @args.AES3 {
> type integer
> }
> type iec958
> slave {
> format IEC958_SUBFRAME_LE
> pcm {
> type hw
> card $CARD
> }
> }
> status [ $AES0 $AES1 $AES2 $AES3 ]
> }
>
> Then the plug above this plugin should work.
>
> % aplay -D plug:hdmi foo.wav
Oh, I didn't know you could dynamically build the pipeline from the
command line.
Note that I'm not including pcm/hdmi.conf, which is probably wrong.
>
>
> (Note that plug over plug doesn't work -- that's the likely reason it
> failed before.)
>
>
> Then, about the default PCM: I wonder whether the dmix is feasible at
> all with this kind of setup. What format does work with this device?
Only IEC958_SUBFRAME_LE
Thanks for your help.
Boris
next prev parent reply other threads:[~2017-04-10 12:35 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-02 10:49 [RESEND PATCH] conf/cards: add VC4-HDMI card Boris Brezillon
2017-03-16 17:28 ` Eric Anholt
2017-03-20 11:06 ` Takashi Iwai
2017-04-06 19:46 ` Eric Anholt
2017-04-07 8:21 ` Takashi Iwai
2017-04-07 17:20 ` Eric Anholt
2017-04-10 12:09 ` Boris Brezillon
2017-04-10 12:19 ` Takashi Iwai
2017-04-10 12:35 ` Boris Brezillon [this message]
2017-04-10 12:42 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170410143523.6be657c7@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=alsa-devel@alsa-project.org \
--cc=eric@anholt.net \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.