Re: [linux-sunxi] Re: Audio sound card name [was [PATCH 4/7] arm64: dts: allwinner: a64: Add HDMI audio]

From: Takashi Iwai
Date: Wed Apr 29 2020 - 07:59:27 EST


On Wed, 29 Apr 2020 12:43:06 +0200,
Robin Murphy wrote:
>
> On 2020-04-29 9:17 am, Maxime Ripard wrote:
> > On Wed, Apr 29, 2020 at 02:24:00PM +0800, Chen-Yu Tsai wrote:
> >> On Wed, Apr 29, 2020 at 1:11 AM Robin Murphy <robin.murphy@xxxxxxx> wrote:
> >>>
> >>> On 2020-04-28 5:49 pm, ClÃment PÃron wrote:
> >>>> Hi Mark, Rob,
> >>>>
> >>>> On Tue, 28 Apr 2020 at 18:04, Maxime Ripard <maxime@xxxxxxxxxx> wrote:
> >>>>>
> >>>>> On Tue, Apr 28, 2020 at 10:54:00AM +0200, ClÃment PÃron wrote:
> >>>>>> Hi Maxime,
> >>>>>>
> >>>>>> On Tue, 28 Apr 2020 at 10:00, Maxime Ripard <maxime@xxxxxxxxxx> wrote:
> >>>>>>>
> >>>>>>> On Sun, Apr 26, 2020 at 02:04:39PM +0200, ClÃment PÃron wrote:
> >>>>>>>> From: Marcus Cooper <codekipper@xxxxxxxxx>
> >>>>>>>>
> >>>>>>>> Add a simple-soundcard to link audio between HDMI and I2S.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Jernej Skrabec <jernej.skrabec@xxxxxxxx>
> >>>>>>>> Signed-off-by: Marcus Cooper <codekipper@xxxxxxxxx>
> >>>>>>>> Signed-off-by: ClÃment PÃron <peron.clem@xxxxxxxxx>
> >>>>>>>> ---
> >>>>>>>> arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 21 +++++++++++++++++++
> >>>>>>>> 1 file changed, 21 insertions(+)
> >>>>>>>>
> >>>>>>>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> >>>>>>>> index e56e1e3d4b73..08ab6b5e72a5 100644
> >>>>>>>> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> >>>>>>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> >>>>>>>> @@ -102,6 +102,25 @@
> >>>>>>>> status = "disabled";
> >>>>>>>> };
> >>>>>>>>
> >>>>>>>> + hdmi_sound: hdmi-sound {
> >>>>>>>> + compatible = "simple-audio-card";
> >>>>>>>> + simple-audio-card,format = "i2s";
> >>>>>>>> + simple-audio-card,name = "allwinner,hdmi";
> >>>>>>>
> >>>>>>> I'm not sure what the usual card name should be like though. I would assume that
> >>>>>>> this should be something specific enough so that you're able to differentiate
> >>>>>>> between boards / SoC so that the userspace can choose a different configuration
> >>>>>>> based on it?
> >>>>>>
> >>>>>> I really don't know what we should use here,
> >>>>>> I just have a look at other SoC:
> >>>>>> rk3328: "HDMI"
> >>>>>> rk3399: "hdmi-sound"
> >>>>>> r8a774c0-cat874: "CAT874 HDMI sound"
> >>>>>>
> >>>>>> But maybe it's time to introduce proper name:
> >>>>>> What about :
> >>>>>> pat
> >>>>>> sun50i-h6-hdmi
> >>>>>
> >>>>> It's pretty much what we've been using for the other sound cards we have, so it
> >>>>> makes sense to me.
> >>>>
> >>>> I have a question regarding the simple-audio-card,name.
> >>>> In this patch, I would like to introduce a simple-audio-card for the
> >>>> Allwinner A64 HDMI.
> >>>>
> >>>> What should be the preferred name for this sound card?
> >>>> "sun50i-a64-hdmi" ? "allwinner, sun50i-a64-hdmi" ?
> >>>
> >>> I can at least speak for RK3328, and the reasoning there was that as the
> >>> user looking at what `aplay -l` says, I don't give a hoot about what the
> >>> SoC may be called, I see two cards and I want to know, with the least
> >>> amount of uncertainty, which one will make the sound come out of the
> >>> port that's labelled "HDMI" on the box ;)
> >>
> >> I agree. The user really doesn't care what SoC the system uses. The only
> >> real requirement is to be able to tell which output the card is related
> >> to, i.e. is it onboard or an external DAC, is it analog or HDMI, etc..
> >
> > Yeah, but it's exactly the point.
> >
> > If we also end up with "HDMI" as our card name, then the userspace has no way to
> > tell anymore if it's running from an rk3328 or an allwinner SoC, or something
> > else entirely. And therefore it cannot really configure anything to work out of
> > the box anymore.
>
> OK, you're a userspace audio application - enlighten me as to what
> exact chip you're running on here, and why you need to know:
>
> card 0: HDMI [HDA ATI HDMI]
>
> or how about here?
>
> card 0: Intel [HDA Intel]

Heh, those are bad examples. Although the single HD-audio driver
supports (literally) thousands of different models and hardware
configurations, it's more or less self-contained; i.e. it needs
neither UCM nor exotic setups. IOW, user-space don't need much to
care about the difference of the hardware. (Admittedly there are
subtle things to be done for HD-audio, too, but PA can handle it in a
generic way, for example.)

OTOH, in general, ASoC drivers do need the individual setups; that's
almost unavoidable from its design perspective. Hence, unless the
identical configuration is needed, it'd be wiser to provide different
driver names to identify which setup to be applied.


Takashi