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

From: Robin Murphy
Date: Wed Apr 29 2020 - 06:43:21 EST


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.

Robin.