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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 29, 2020 at 12:53:49PM +0200, Jernej Škrabec wrote:
> Dne sreda, 29. april 2020 ob 12:43:06 CEST je Robin Murphy napisal(a):
> > 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]
> > 
> > 
> > Furthermore, your argument works both ways - if the equivalent (or in
> > common cases like DesignWare IP blocks, exact same) thing across 3
> > different SoCs has 3 different names, then it's that much harder for
> > userspace that wants to present a consistent behaviour. I don't know
> > exactly why LibreELEC have downstream patches that standardise all the
> > Rockchip ones to "HDMI", but I can't help noting that they do.
> > 
> > With simple-audio-card we're talking about trivial interfaces that often
> > don't expose any controls at all, so there's unlikely to be much
> > 'configuration' for userspace to do beyond choosing which card to output to.
> 
> Only difference is slightly different version of HDMI controller and different
> This combination (DesignWare HDMI controller + I2S) is same as on Rockchip.
> I2S core.

Well, that fact only is already information that is not carried on to the
userspace. Think about it this way: let's say you run Debian, you just installed
it without any configuration, and you don't have any knowledge about the
hardware, you're just a user. Can the OS know how to configure that output based
on the card name "HDMI" alone?

HDMI is an easy one compared to the i2s + codec combinations we might have, but
it already has some interesting differences between hardwares. For example, the
RPi iirc needs an IEC958 format, while this one works just fine with a standard
PCM format.

Maxime

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux