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]
Date:   Tue, 1 Sep 2020 13:25:04 +0100
From:   Robin Murphy <robin.murphy@....com>
To:     Katsuhiro Suzuki <katsuhiro@...suster.net>,
        Heiko Stuebner <heiko@...ech.de>
Cc:     linux-rockchip@...ts.infradead.org, linux-kernel@...r.kernel.org,
        linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v2] arm64: dts: rockchip: enable HDMI sound nodes for
 rk3328-rock64

On 2020-08-31 02:26, Katsuhiro Suzuki wrote:
> 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.

FWIW it seems that since 089b6d365491, DMA is effectively disabled for 
UART2 anyway (unless the user goes out of their way to repurpose it), so 
maybe this is no longer such an immediate concern?

Robin.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ