[PATCH v2] arm64: dts: rockchip: enable HDMI sound nodes for rk3328-rock64

Heiko Stuebner heiko at sntech.de
Sun Aug 30 15:16:47 EDT 2020


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?

Heiko






More information about the Linux-rockchip mailing list