LKML Archive on lore.kernel.org
 help / Atom feed
From: Jonas Karlman <jonas@kwiboo.se>
To: Katsuhiro Suzuki <katsuhiro@katsuster.net>,
	Heiko Stuebner <heiko@sntech.de>,
	"linux-rockchip@lists.infradead.org" 
	<linux-rockchip@lists.infradead.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 2/2] arm64: dts: rockchip: add HDMI sound node for rk3328-rock64
Date: Sun, 17 Mar 2019 12:33:19 +0000
Message-ID: <AM3PR03MB0966C5CA52CE87DFB35D172BAC460@AM3PR03MB0966.eurprd03.prod.outlook.com> (raw)
In-Reply-To: <b855ff66-19e5-4ea5-3337-23d5ada1bf1c@katsuster.net>

Hello Katsuhiro,

Sorry for the delay, I have not been able to fully test this yet but will do more testing later tonight.

My concern are regarding how to configure a single graph card node to add a hdmi: (and iec958: for spdif) variants using an alsa config file.
In LibreELEC I expose HDMI and SPDIF as two different card nodes to simplify applying alsa config files, see [1] and [2] for the alsa config files I use.
Do you know how I can configure the hdmi: and iec958: cards and add a "IEC958 Playback" ctl with the combined graph card node?

I am also working on NL-PCM/HBR-audio support for dw-hdmi-i2s and it will require "IEC958 Playback" ctl and players such as kodi and mpv only sets AES0-3 for hdmi: and iec958: cards.

[1] https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Rockchip/filesystem/usr/share/alsa/cards/HDMI.conf
[2] https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Rockchip/filesystem/usr/share/alsa/cards/SPDIF.conf

Regards,
Jonas

On 2019-03-17 10:54, Katsuhiro Suzuki wrote:
> Hello Jonas,
>
> How about this topic?
>
> I think this patch does not have bad effect for multi channel
> sound of HDMI. If you don't think so, please tell me.
> I wait your sound patch and after re-check this patch.
>
> Best Regards,
> Katsuhiro Suzuki
>
> On 2019/03/03 4:26, Katsuhiro Suzuki wrote:
>> Hello Jonas,
>>
>> Thanks for your comments.
>>
>> On 2019/03/03 2:20, Jonas Karlman wrote:
>>> On 2019-03-02 15:19, Katsuhiro Suzuki wrote:
>>>> Ping...
>>>>
>>>> On 2019/02/18 2:34, Katsuhiro Suzuki wrote:
>>>>> This patch adds HDMI sound (I2S0) node for rock64.
>>>>>
>>>>> After apply this patch, UART2 will fail to allocate DMA resources
>>>>> but UART driver can work fine without DMA.
>>>>>
>>>>> This error is related to the DMAC of rk3328 (pl330 or compatible).
>>>>> DMAC connected to 16 DMA sources. Each sources have ID number that is
>>>>> called 'Req number' in rk3328 TRM. Currently total 7 sources has been
>>>>> activated as follows:
>>>>>
>>>>> | Req number | Source | Required  |
>>>>> |            |        | channels  |
>>>>> |------------+--------+-----------|
>>>>> | 14, 15     | I2S1   | 2ch       |
>>>>> |  6,  7     | UART2  | 2ch       |
>>>>> |     10     | SPDIF  | 1ch       |
>>>>> |  8,  9     | SPI0   | 2ch       |
>>>>> |------------+--------+-----------|
>>>>> |            | Total  | 7ch       |
>>>>>
>>>>> HDMI audio needs to activate new source I2S0 (Req number 11 and 12).
>>>>> I2S0 can work concurrently with other sources, but rk3328 DMAC can
>>>>> use max 8 channels at same time. If I2S0 is simply activated by this
>>>>> patch, required DMAC channels will be 9. So last one (UART2) cannot
>>>>> allocate the DMA resources.
>>>>>
>>>>> Virt-dma mechanism for pl0330 DMAC driver is needed to fix this
>>>>> problem.
>>>>>
>>>>> Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net>
>>>>> ---
>>>>>    .../arm64/boot/dts/rockchip/rk3328-rock64.dts | 21 
>>>>> ++++++++++++++++++-
>>>>>    1 file changed, 20 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts 
>>>>> b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
>>>>> index 2157a528276b..bfc0930d245c 100644
>>>>> --- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
>>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
>>>>> @@ -68,7 +68,8 @@
>>>>>        sound {
>>>>>            compatible = "audio-graph-card";
>>>>>            label = "rockchip,rk3328";
>>>>> -        dais = <&i2s1_p0
>>>>> +        dais = <&i2s0_p0
>>>>> +            &i2s1_p0
>>>>>                &spdif_p0>;
>>> I am working on multi-channel hdmi audio support for dw-hdmi at [1] 
>>> and are wondering if having multiple dais on one graph card
>>> instead of a separate hdmi sound card will affect the ability to 
>>> define a proper alsa config for multi channel hdmi sound.
>>>
>>> [1] 
>>> https://github.com/Kwiboo/linux-rockchip/compare/8874c206d613dc575f5cb6e385e7a866020138d0...92b20eaa6b6dd2cf3418a428f905d10bbc62724f 
>>>
>>>
>> It seems a part of multi channel (5.1 ch) has already been supported
>> by rockchip-i2s and dw-hdmi. So I applied this patch and tried below
>> command.
>>    speaker-test -D hw:0,0 -f 48000 -c 6
>> It does not return errors.
>>
>> Would you tell me more details you worried about if something wrong?
>>
>>
>> FYI: Rock64 PCM devices are as follows after applied this patch.
>> ~~~~~
>> $ cat /proc/asound/pcm
>> 00-00: ff000000.i2s-i2s-hifi i2s-hifi-0 :  : playback 1
>> 00-01: ff010000.i2s-rk3328-hifi ff410000.codec-1 :  : playback 1 : 
>> capture 1
>> 00-02: ff030000.spdif-dit-hifi dit-hifi-2 :  : playback 1
>> ~~~~~
>>
>> Best Regards,
>> Katsuhiro Suzuki
>>
>>
>>> Regards,
>>> Jonas
>>>
>>>>>        };
>>>>> @@ -141,6 +142,12 @@
>>>>>    &hdmi {
>>>>>        status = "okay";
>>>>> +
>>>>> +    port@0 {
>>>>> +        hdmi_p0_0: endpoint {
>>>>> +            remote-endpoint = <&i2s0_p0_0>;
>>>>> +        };
>>>>> +    };
>>>>>    };
>>>>>    &hdmiphy {
>>>>> @@ -256,6 +263,18 @@
>>>>>        };
>>>>>    };
>>>>> +&i2s0 {
>>>>> +    status = "okay";
>>>>> +
>>>>> +    i2s0_p0: port {
>>>>> +        i2s0_p0_0: endpoint {
>>>>> +            dai-format = "i2s";
>>>>> +            mclk-fs = <256>;
>>>>> +            remote-endpoint = <&hdmi_p0_0>;
>>>>> +        };
>>>>> +    };
>>>>> +};
>>>>> +
>>>>>    &i2s1 {
>>>>>        status = "okay";
>>>>>
>>>> _______________________________________________
>>>> Linux-rockchip mailing list
>>>> Linux-rockchip@lists.infradead.org
>>>> http://lists.infradead.org/mailman/listinfo/linux-rockchip
>>>>
>>>
>>>
>>


  reply index

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-17 17:34 [PATCH v3 1/2] arm64: dts: rockchip: add #sound-dai-cells to HDMI of rk3328 Katsuhiro Suzuki
2019-02-17 17:34 ` [PATCH v3 2/2] arm64: dts: rockchip: add HDMI sound node for rk3328-rock64 Katsuhiro Suzuki
2019-03-02 14:19   ` Katsuhiro Suzuki
2019-03-02 17:20     ` Jonas Karlman
2019-03-02 19:26       ` Katsuhiro Suzuki
2019-03-17  9:54         ` Katsuhiro Suzuki
2019-03-17 12:33           ` Jonas Karlman [this message]
2019-03-21 14:53             ` Katsuhiro Suzuki
2019-03-03 13:55 ` [PATCH v3 1/2] arm64: dts: rockchip: add #sound-dai-cells to HDMI of rk3328 Heiko Stuebner
2019-03-04 14:00   ` Katsuhiro Suzuki

Reply instructions:

You may reply publically 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=AM3PR03MB0966C5CA52CE87DFB35D172BAC460@AM3PR03MB0966.eurprd03.prod.outlook.com \
    --to=jonas@kwiboo.se \
    --cc=heiko@sntech.de \
    --cc=katsuhiro@katsuster.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    /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

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org linux-kernel@archiver.kernel.org
	public-inbox-index lkml


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox