Re: [PATCH v2 01/12] dt-bindings: media: qcom,venus: Add context bank subnodes to common schema
From: Krzysztof Kozlowski
Date: Thu Aug 06 2026 - 05:38:08 EST
On 06/08/2026 11:22, Dmitry Baryshkov wrote:
> On Thu, Aug 06, 2026 at 11:11:09AM +0200, 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,
>> 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.
>
> But there are no separate addresses for those subnodes. Would you prefer
There might be some or maybe these should be the addresses of DMA?
> them to duplicate the addresses of the parent node? Or would the
> 'ranges' be enough?
I made mistake earlier - 'dma-ranges' without values is not described in
DT spec explicitly, but should be treated as 'ranges' without values,
thus direct mapping from parent to the child.
So it also requires address/size-cells, just like 'dma-ranges =
<mapping>'. And dtc checks/reports that.
I think therefore now that the binding is unusual (because no bus
addresses of children) but actually correct.
>
> Or, thinking about it, if Venus / Iris have 32-bit addressing, then
> dma-range should probably define the limited DMA range.
That's another point which I also raised to Vikash already - mapping
should be restricted to 32-bit if this is how the child devices operate.
Best regards,
Krzysztof