lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0e1c3467-0ba0-6b82-4227-40959f0c4b0e@katsuster.net>
Date:   Mon, 31 Aug 2020 10:26:34 +0900
From:   Katsuhiro Suzuki <katsuhiro@...suster.net>
To:     Heiko Stuebner <heiko@...ech.de>
Cc:     linux-rockchip@...ts.infradead.org,
        linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] arm64: dts: rockchip: enable HDMI sound nodes for
 rk3328-rock64

On 2020/08/31 4:16, Heiko Stuebner wrote:
> Hi,
> 
> Am Sonntag, 2. August 2020, 17:42:31 CEST schrieb Katsuhiro Suzuki:
>> This patch enables HDMI sound (I2S0) and Analog sound (I2S1) which
>> are defined in rk3328.dtsi, and replace SPDIF nodes.
>>
>> We can use SPDIF pass-through with suitable ALSA settings and on
>> mpv or other media players.
>>    - Settings: https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Rockchip/filesystem/usr/share/alsa/cards/SPDIF.conf
>>    - Ex.: mpv foo.ac3 --audio-spdif=ac3 --audio-device='alsa/SPDIF.pcm.iec958.0:SPDIF'
>>
>> [Why use simple-audio-card for SPDIF?]
>>
>> For newly adding nodes, ASoC guys recommend to use audio-graph-card.
>> But all other sound nodes for rk3328 have already been defined by
>> simple-audio-card. In this time, I chose for consistent sound nodes.
>>
>> [DMA allocation problem]
>>
>> After this patch is applied, 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. After this patch is applied total 7
>> of DMA sources will be activated as follows:
>>
>> | Req number | Source | Required  |
>> |            |        | channels  |
>> |------------+--------+-----------|
>> |  8,  9     | SPI0   | 2ch       |
>> | 11, 12     | I2S0   | 2ch       |
>> | 14, 15     | I2S1   | 2ch       |
>> |     10     | SPDIF  | 1ch       |
>> |------------+--------+-----------|
>> |            | Total  | 7ch       |
>> |------------+--------+-----------|
>> |  6,  7     | UART2  | 2ch       | -> cannot get DMA channels
>>
>> Due to rk3328 DMAC specification we can use max 8 channels at same
>> time. If SPI0/I2S0/I2S1/SPDIF will be activated by this patch,
>> required DMAC channels reach to 7. So the last two channels (for
>> UART2) cannot get DMA resources.
> 
> Wouldn't the dma allocation depend on the probe ordering?
> Or is this predetermined, so that always uart2 looses its dmas?
> 

Ah, it's depends on probe ordering when users use kernel modules...

It's better to disable DMA channels for UART2 for avoiding problem.
I'll fix and resend patch.


> Heiko
> 
> 
> 

Best Regards,
Katsuhiro Suzuki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ