Re: [PATCH v2 01/12] dt-bindings: media: qcom,venus: Add context bank subnodes to common schema
Krzysztof Kozlowski <[email protected]> Thu, 6 Aug 2026 11:20:09 +0200
| Newsgroups | org.kernel.vger.linux-media,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
On 06/08/2026 11:11, Krzysztof Kozlowski wrote: > On 06/08/2026 10:46, Dmitry Baryshkov wrote: >> >>> dma-ranges tell how this bus - so venus/iris - performs DMA translation >>> in respective to parent. Address/size-cells are obviously also needed if >>> this is a bus with addressing. >>> >>> But there are no children with addressing, thus what sort of bus would >>> it be? >>> >>> It looks to me that having here both: >>> 1. dma-ranges + address/size-cells >>> 2. children without bus addressing >>> is some sort of abuse of the DT syntax. It is allowed, but does not >>> really represent hardware. >>> >>> IOW, dma-ranges alone feels okay, although unusual, and it states proper >>> DMA translation for this bus. If you add address/size-cells, it means >>> this bus HAS addressing and thus YOU MUST use addressing. >>> >>> If my understanding is correct, then solution would be to add addressing >>> to the children (so unit address and "reg" property) or drop >>> address/size-cells as Rob pointed out. [1] >> >> Doesn't dma-ranges require address/size cells? In the end, how can you > > I think it does not require, at least how I understood the DT spec, 'dtc' disagrees with me on this matter and treats 'dma-ranges' exactly the same as 'ranges' property, thus requires address/size cells. So maybe my below interpretation is not right and the schema is fine... Rob commented earlier on a case which had address/size-cells but no dma-ranges. https://lore.kernel.org/all/[email protected]/ > unless you provide actual addresses to the property. > > IOW, this requires address/size-cells: > dma-ranges = <0 0 0 0 0x10 0>; > >> specify the DMA address if the device doesn't have addressing at all (or >> MMIO-style addressing)? > > Yeah, that's why having here children without bus addressing is > confusing. I would interpret it that, children are not on MMIO bus, thus > the venus/iris is some sort of proprietary bus with no mapping between > parent MMIO and children nodes. > > If there is no mapping, then we do not have 'ranges' property. But I > could imagine that such no-mapping bus still provides access to system RAM? > > Actually this feels like a huge stretch, so I tend to think that the > only reasonable option is to have children with MMIO, which would make > it explicit: Venus/iris is a bus which provides translation of both MMIO > and DMA addresses to the parent. Best regards, Krzysztof