Re: [PATCH v2 01/12] dt-bindings: media: qcom,venus: Add context bank subnodes to common schema

From: Dmitry Baryshkov

Date: Thu Aug 06 2026 - 06:43:40 EST


On Thu, Aug 06, 2026 at 03:22:26PM +0530, Vikash Garodia wrote:
>
>
> On 8/6/2026 2:19 PM, Dmitry Baryshkov wrote:
> > On Fri, Jul 31, 2026 at 11:52:16PM +0530, Vikash Garodia wrote:
> > > The VPU issues DMA through several SMMU streams, and the hardware does
> > > not give every stream the same addressable range. The non-pixel stream
> > > is restricted to use 0-600MB of IOVA space, while the pixel stream can
> > > address the full range:
> > > +-----------------------------------------------------------+
> > > | non-pixel stream addressable range (600 MB - 3.5 GB) |
> > > | 0x25800000 - 0xe0000000 |
> > > +-----------------------------------------------------------+
> > > | pixel stream addressable range (0 - 3.5 GB) |
> > > | 0x00000000 - 0xe0000000 |
> > > +-----------------------------------------------------------+
> > > A single "iommus" property on the video-codec node puts every stream in
> > > one IOMMU domain sharing one IOVA allocator, so nothing keeps a
> > > non-pixel buffer inside the low 600 MB. Once an allocation lands below
> > > that boundary the hardware faults, which shows up as unhandled SMMU page
> > > faults and spontaneous reboots:
> > > https://gitlab.freedesktop.org/drm/msm/-/work_items/100
> > >
> > > + dma-ranges: true
> > > +
> > > + '#address-cells':
> > > + const: 2
> > > +
> > > + '#size-cells':
> > > + const: 2
> >
> > This would conflict with the 32-bit addressed Venus nodes (and it will
> > also break examples). So both should be just 'true'
>
> With "true", i see following comment from sashiko (when ran locally)
>
> Without a const constraint, a device tree could specify #address-cells = <1>
> or a non-empty dma-ranges, and it would silently pass schema validation. The
> DT bindings guidelines also recommend that cell-count properties have a
> const constraint matching the hardware.

We have 32-bit hardware. Also, as you've seen, having only const:2 here
breaks DT examples.

--
With best wishes
Dmitry