Re: [PATCH] arm64: dts: rockchip: add HDMI sound node for rk3328-rock64
From: Heiko Stuebner
Date: Sun Feb 17 2019 - 08:17:29 EST
Am Sonntag, 17. Februar 2019, 11:58:36 CET schrieb Katsuhiro Suzuki:
> Hello Heiko,
>
> On 2019/02/12 20:12, Heiko Stübner wrote:
> > Hi,
> >
> > Am Montag, 4. Februar 2019, 13:59:37 CET schrieb Katsuhiro Suzuki:
> >> On 2019/02/03 18:06, Heiko Stuebner wrote:
> >>> Am Samstag, 2. Februar 2019, 05:34:44 CET schrieb Katsuhiro Suzuki:
> >>>> This patch adds HDMI sound (I2S0) node and remove dma properties
> >>>> from UART2 node for rock64.
> >>>>
> >>>> The DMAC of rk3328 can use 8 channels at same time. Currently, total
> >>>>
> >>>> 7 channels are used as follows:
> >>>> - I2S1 2ch
> >>>> - UART2 2ch
> >>>> - SPDIF 1ch
> >>>> - SPI0 2ch
> >>>>
> >>>> HDMI audio using I2S0 that requires 2ch but DMAC has only 1 channel.
> >>>>
> >>>> UART2 can work without DMA resources, so this patch removes dma
> >>>> allocation for UART2 and reuses it to I2S0.
> >>>
> >>> I don't follow that description. How can i2s0 re-use the uart2 dma
> >>> channels? Looking at the dma table in the TRM, uart2 has channels 6+7
> >>> while i2s0 uses channels 11+12. They should just run concurrently?
> >>
> >> Sorry for confusing... 6 or 7 is as ID number of slave DMA channel.
> >> TRM calls it 'Req number'. Req number 6+7 and 11+12 can work
> >> concurrently but TRM says DMAC can transfer 8 DMA channels at same
> >> time. So all 16 Req numbers cannot activate at same time. It should
> >> be keep less or equal than 8 numbers.
> >
> > But that "shortcoming" of having more requests than channels is not
> > something specific to the pl330, instead most dma controllers have that
> > "problem", which seems to get solved by the virt-dma mechanism of
> > dmaengine - which pl330 doesn't use so far. (but see pl080 for example)
> >
>
> I understand. I drop these patches.
>
>
> > The devicetree only describes the hardware and is never meant as a
> > configuration space for kernel-code shortcomings.
> >
>
> Yes, right. I don't want to use device-tree as configuration space,
> so which is better?
>
> - Fix the pl330 driver first and after that add HDMI-sound node
> to device-tree.
> - Just add HDMI-sound node to device-tree. If someone (include me)
> want to support virt-dma on pl330 driver, they will fix it.
> (PL330 will face error but all sounds works fine and UART still
> works fine with DMA error)
I'd go with this second option :-) .
Heiko