Re: [RESEND x3][PATCH v4] arm64: dts: hi6220: Add k3-dma and i2s/hdmi audio support

From: Kuninori Morimoto
Date: Mon Jun 12 2017 - 22:09:53 EST



Hi John

> On Mon, Jun 12, 2017 at 3:10 PM, Mark Brown <broonie@xxxxxxxxxx> wrote:
> > On Mon, Jun 12, 2017 at 01:52:46PM -0700, John Stultz wrote:
> >
> >> + sound {
> >> + compatible = "simple-audio-card";
> >> + simple-audio-card,name = "hikey-hdmi";
> >
> > Now the graph card has been merged it's probably a good idea to be using
> > that, it's generally a better idea for pretty much all use cases.
>
> I've taken a shot today trying to convert over to the audio-graph-card
> method (which isn't yet upstream, but in -next), but I've been running
> into some quirks.
>
> Part of the issue is the adv7533 bridge already has a endpoint port
> entry for the dsi output. So when I add the codec_endpoint port, it
> wants the two port entries to be enumerated, so I get something like:
>
> port@0 {
> adv7533_in: endpoint {
> remote-endpoint = <&dsi_out0>;
> };
> };
> port@1 {
> codec_endpoint: endpoint {
> remote-endpoint = <&i2s0_cpu_endpoint>;
> };
> };
>
> But this causes it to try to link to hdmi-hifi.1 (which doesn't exist)
> instead of hdmi-hifi.0.
>
> If I instead swap the entries, so the codec_endpoint is first on port
> 0, then the the audio link is properly setup, but the dsi
> initialization falls over.

I think you want to exchange port@1 as ID=0 for ALSA SoC ?
If so, we already has .of_xlate_dai_id callback for this purpose.

Does below help your issue ?

commit 73b17f1a65c881fcf97109d77056006da2d40152
commit a180e8b988437b3e84a1b501ac4d073467602ca6

Samplle codes are

linux/sound/soc/codecs/hdmi-codec.c :: hdmi_of_xlate_dai_id
https://patchwork.kernel.org/patch/9732285/ (I posted, but not yet applied)

Best regards
---
Kuninori Morimoto