From: Krzysztof Kozlowski <krzk@kernel.org>
To: Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>,
Abhinav Kumar <abhinav.kumar@linux.dev>,
Bryan O'Donoghue <bod@kernel.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Stanimir Varbanov <stanimir.varbanov@linaro.org>,
Neil Armstrong <neil.armstrong@linaro.org>,
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
Stephan Gerhold <stephan.gerhold@linaro.org>,
linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
stable@vger.kernel.org, Daniel J Blueman <daniel@quora.org>
Subject: Re: [PATCH v2 01/12] dt-bindings: media: qcom,venus: Add context bank subnodes to common schema
Date: Wed, 5 Aug 2026 09:21:00 +0200 [thread overview]
Message-ID: <20260805-dark-voracious-jacamar-6aae4c@quoll> (raw)
In-Reply-To: <20260731-vpu_iommu_iova_handling-v2-1-da52b5228dbd@oss.qualcomm.com>
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
>
> Describe each stream as its own context bank subnode instead, so that
> each can be associated with the IOVA range its stream can actually
> reach. This limitation applies to every VPU generation, so add the
> subnodes to the common schema rather than to each SoC schema
> individually. "video-firmware" moves here from qcom,sc7180-venus.yaml
> for the same reason; it is the same kind of node and was already
> duplicated per-SoC.
> Adding the subnodes requires two supporting properties on the parent
> video-codec node:
> - '#address-cells' and '#size-cells', both fixed at 2. These do not
> describe registers on the codec node. They set the cell widths
> used when a reserved-memory node names one of these subnodes in an
> "iommu-addresses" entry: of_translate_dma_region() reads the
> address/size cell counts from the parent of the phandle target, not
> from the reserved-memory node. Pinning both to 2 lets a subnode be
> referenced with a full 64-bit IOVA base and length, and keeps the
> encoding identical across SoCs, whose buses vary between 1 and 2
> cells.
> - "dma-ranges", empty "dma-ranges" states the intended translation:
> the subnode DMA address space maps 1:1 into the parent's, so an IOVA
> reservation written against a subnode needs no offset applied.
> of_translate_one() treats an empty "dma-ranges" as exactly that
> identity mapping.
>
> The parent's "iommus" is kept as an alternative via "oneOf", so
> platforms that have not been converted to subnodes still validate. New
> platforms should use the subnode form.
>
> Fixes: 41661853ae8e ("arm64: dts: qcom: sm8550: add iris DT node")
> Cc: stable@vger.kernel.org
> Tested-by: Daniel J Blueman <daniel@quora.org>
Not a valid tag.
> Signed-off-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>
> ---
> .../bindings/media/qcom,sc7180-venus.yaml | 15 -------
> .../bindings/media/qcom,venus-common.yaml | 51 ++++++++++++++++++++++
> 2 files changed, 51 insertions(+), 15 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml b/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
> index b21bed314848480b82153e49602f0b19e08e7335..bfd8b1ad473128c974bce84639cb0aff59d8c2cc 100644
> --- a/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml
> @@ -91,21 +91,6 @@ properties:
> deprecated: true
> additionalProperties: false
>
> - video-firmware:
> - type: object
> - additionalProperties: false
> -
> - description: |
> - Firmware subnode is needed when the platform does not
> - have TrustZone.
> -
> - properties:
> - iommus:
> - maxItems: 1
> -
> - required:
> - - iommus
> -
> required:
> - compatible
> - power-domain-names
> diff --git a/Documentation/devicetree/bindings/media/qcom,venus-common.yaml b/Documentation/devicetree/bindings/media/qcom,venus-common.yaml
> index 59a3fde846d2196ab1e4588eb396012ba6860712..ccae41bed757bf3d9518cd4afe4565f043b45166 100644
> --- a/Documentation/devicetree/bindings/media/qcom,venus-common.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,venus-common.yaml
> @@ -47,6 +47,50 @@ properties:
> minItems: 1
> maxItems: 4
>
> + dma-ranges: true
> +
> + '#address-cells':
> + const: 2
> +
> + '#size-cells':
> + const: 2
Above do not look valid. You do not describe the addressing of some
other device node (not a child) here. You describe that addressing in
that other device node's parent.
> +
> + non-pixel:
> + type: object
> + description:
> + Context bank for VPU non-pixel buffers, including compressed and internal buffers.
> + properties:
> + iommus:
> + maxItems: 1
> + memory-region:
> + maxItems: 1
> + required:
> + - iommus
> + - memory-region
> + additionalProperties: false
> +
> + pixel:
> + type: object
> + description:
> + Context bank for VPU pixel buffers containing uncompressed video data.
> + properties:
> + iommus:
> + maxItems: 1
> + required:
> + - iommus
> + additionalProperties: false
> +
> + video-firmware:
> + type: object
> + description:
> + Context bank for the VPU firmware processing domain.
Missing blank line
> + properties:
> + iommus:
> + maxItems: 1
> + required:
> + - iommus
> + additionalProperties: false
For children this follows type or description for readability
foo:
...
description:
additionalprops:...
properties:
...
required:
...
Best regards,
Krzysztof
next prev parent reply other threads:[~2026-08-05 7:21 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 18:22 [PATCH v2 00/12] media: iris: Migrate iommus to iris sub nodes Vikash Garodia
2026-07-31 18:22 ` [PATCH v2 01/12] dt-bindings: media: qcom,venus: Add context bank subnodes to common schema Vikash Garodia
2026-07-31 18:36 ` sashiko-bot
2026-08-01 10:06 ` Bryan O'Donoghue
2026-08-06 5:21 ` Vikash Garodia
2026-08-06 7:54 ` Bryan O'Donoghue
2026-08-06 7:57 ` Vikash Garodia
2026-08-06 9:40 ` Bryan O'Donoghue
2026-08-06 10:07 ` Bryan O'Donoghue
2026-08-06 10:14 ` Krzysztof Kozlowski
2026-08-06 10:24 ` Bryan O'Donoghue
2026-08-06 10:32 ` Krzysztof Kozlowski
2026-08-06 10:50 ` Bryan O'Donoghue
2026-08-06 11:14 ` Dmitry Baryshkov
2026-08-06 11:19 ` Bryan O'Donoghue
2026-08-06 12:20 ` Vikash Garodia
2026-08-05 7:21 ` Krzysztof Kozlowski [this message]
2026-08-05 10:37 ` Krzysztof Kozlowski
2026-08-06 8:46 ` Dmitry Baryshkov
2026-08-06 9:11 ` Krzysztof Kozlowski
2026-08-06 9:20 ` Krzysztof Kozlowski
2026-08-06 9:22 ` Dmitry Baryshkov
2026-08-06 9:36 ` Krzysztof Kozlowski
2026-08-06 10:35 ` Dmitry Baryshkov
2026-08-06 11:56 ` Vikash Garodia
2026-08-06 12:10 ` Dmitry Baryshkov
2026-08-06 8:49 ` Dmitry Baryshkov
2026-08-06 9:52 ` Vikash Garodia
2026-08-06 10:38 ` Dmitry Baryshkov
2026-07-31 18:22 ` [PATCH v2 02/12] dt-bindings: media: qcom,sm8550-iris: Add context bank subnodes Vikash Garodia
2026-07-31 18:31 ` sashiko-bot
2026-07-31 20:36 ` Rob Herring (Arm)
2026-08-06 8:51 ` Dmitry Baryshkov
2026-08-05 7:21 ` Krzysztof Kozlowski
2026-07-31 18:22 ` [PATCH v2 03/12] media: iris: Add platform hooks for context bank device setup Vikash Garodia
2026-07-31 18:36 ` sashiko-bot
2026-08-06 8:53 ` Dmitry Baryshkov
2026-07-31 18:22 ` [PATCH v2 04/12] media: iris: Add helper to create a context bank device Vikash Garodia
2026-08-06 8:57 ` Dmitry Baryshkov
2026-08-06 10:08 ` Vikash Garodia
2026-08-06 10:18 ` Krzysztof Kozlowski
2026-07-31 18:22 ` [PATCH v2 05/12] media: iris: Route buffers to the matching " Vikash Garodia
2026-07-31 18:57 ` sashiko-bot
2026-08-06 9:03 ` Dmitry Baryshkov
2026-07-31 18:22 ` [PATCH v2 06/12] media: iris: Skip DMA mask setup when the core device has no IOMMU Vikash Garodia
2026-07-31 18:43 ` sashiko-bot
2026-07-31 18:22 ` [PATCH v2 07/12] media: iris: Create pixel and non-pixel context banks on VPU3x Vikash Garodia
2026-07-31 18:41 ` sashiko-bot
2026-08-06 9:07 ` Dmitry Baryshkov
2026-08-06 10:06 ` Vikash Garodia
2026-08-06 10:53 ` Dmitry Baryshkov
2026-07-31 18:22 ` [PATCH v2 08/12] arm64: dts: qcom: hamoa: Add Iris context bank subnodes Vikash Garodia
2026-07-31 18:22 ` [PATCH v2 09/12] arm64: dts: qcom: sm8550: " Vikash Garodia
2026-07-31 18:38 ` sashiko-bot
2026-07-31 18:22 ` [PATCH v2 10/12] arm64: dts: qcom: lemans: " Vikash Garodia
2026-07-31 18:22 ` [PATCH v2 11/12] arm64: dts: qcom: monaco: " Vikash Garodia
2026-07-31 18:22 ` [PATCH v2 12/12] arm64: dts: qcom: sm8650: " Vikash Garodia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260805-dark-voracious-jacamar-6aae4c@quoll \
--to=krzk@kernel.org \
--cc=abhinav.kumar@linux.dev \
--cc=andersson@kernel.org \
--cc=bod@kernel.org \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=daniel@quora.org \
--cc=devicetree@vger.kernel.org \
--cc=dikshita.agarwal@oss.qualcomm.com \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=konrad.dybcio@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=robh@kernel.org \
--cc=stable@vger.kernel.org \
--cc=stanimir.varbanov@linaro.org \
--cc=stephan.gerhold@linaro.org \
--cc=vikash.garodia@oss.qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox