From: sashiko-bot@kernel.org
To: "Dmitry Baryshkov" <dmitry.baryshkov@oss.qualcomm.com>
Cc: krzk+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org,
conor+dt@kernel.org
Subject: Re: [PATCH v7 5/6] arm64: dts: qcom: sm8350: add Iris device
Date: Fri, 15 May 2026 12:08:54 +0000 [thread overview]
Message-ID: <20260515120854.C2FBAC2BCB0@smtp.kernel.org> (raw)
In-Reply-To: <20260515-iris-sc8280xp-v7-5-2e21f6db1897@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The fallback driver `qcom,sm8250-venus` lacks support for the `mmcx` power domain, causing silent dynamic voltage scaling failures and hardware instability.
- [Medium] The `video-codec@aa00000` node violates the `qcom,sm8250-venus` DT schema constraints by defining 4 power domains.
--
commit 2b4298f622bad3f707d0f7effff3c5046a527949
Author: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
arm64: dts: qcom: sm8350: add Iris device
This commit adds Iris and video clock controller devices, describing the
Iris2 core present on this platform.
> diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qcom/sm8350.dtsi
> --- a/arch/arm64/boot/dts/qcom/sm8350.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8350.dtsi
[ ... ]
> @@ -2745,6 +2747,85 @@ usb_2_dwc3: usb@a800000 {
[ ... ]
> + iris: video-codec@aa00000 {
> + compatible = "qcom,sm8350-iris", "qcom,sm8250-venus";
> + reg = <0x0 0x0aa00000 0x0 0x100000>;
> + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
> +
> + clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
> + <&videocc VIDEO_CC_MVS0C_CLK>,
> + <&videocc VIDEO_CC_MVS0_CLK>;
> + clock-names = "iface",
> + "core",
> + "vcodec0_core";
> + power-domains = <&videocc MVS0C_GDSC>,
> + <&videocc MVS0_GDSC>,
> + <&rpmhpd RPMHPD_MX>,
> + <&rpmhpd RPMHPD_MMCX>;
> + power-domain-names = "venus",
> + "vcodec0",
> + "mx",
> + "mmcx";
The qcom,sm8250-venus schema restricts power-domains to maxItems: 3 and
power-domain-names to venus, vcodec0, and mx. Since this node uses the
qcom,sm8250-venus fallback compatible string and defines 4 power domains
including mmcx, will this cause make dtbs_check to fail with validation
errors?
> +
> + resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
> + <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
> + reset-names = "bus", "core";
> +
> + interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
> + &config_noc SLAVE_VENUS_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
> + <&mmss_noc MASTER_VIDEO_P0 QCOM_ICC_TAG_ALWAYS
> + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
> + interconnect-names = "cpu-cfg",
> + "video-mem";
> +
> + operating-points-v2 = <&iris_opp_table>;
> + iommus = <&apps_smmu 0x2100 0x400>;
> + memory-region = <&pil_video_mem>;
> +
> + status = "disabled";
> +
> + iris_opp_table: opp-table {
> + compatible = "operating-points-v2";
> +
> + opp-240000000 {
> + opp-hz = /bits/ 64 <240000000>;
> + required-opps = <&rpmhpd_opp_svs>,
> + <&rpmhpd_opp_low_svs>;
> + };
> +
> + opp-338000000 {
> + opp-hz = /bits/ 64 <338000000>;
> + required-opps = <&rpmhpd_opp_svs>,
> + <&rpmhpd_opp_svs>;
> + };
> +
> + opp-366000000 {
> + opp-hz = /bits/ 64 <366000000>;
> + required-opps = <&rpmhpd_opp_svs_l1>,
> + <&rpmhpd_opp_svs_l1>;
> + };
> +
> + opp-444000000 {
> + opp-hz = /bits/ 64 <444000000>;
> + required-opps = <&rpmhpd_opp_svs_l1>,
> + <&rpmhpd_opp_nom>;
> + };
The iris_opp_table specifies two required-opps for each frequency point to
dynamically scale both the mx and mmcx power domains. However, because a
specific qcom,sm8350-iris driver is not implemented, the kernel will bind
this device to the fallback qcom,sm8250-venus driver.
The qcom,sm8250-venus platform driver data explicitly requests and attaches
only the mx OPP domain, entirely omitting mmcx. During dynamic voltage
scaling, the OPP framework will silently skip casting the second required-opp
vote because the mmcx index in required_devs is NULL.
Will this cause the MMCX voltage to statically remain at its baseline low_svs
while the Iris core runs at high frequencies like 444MHz, potentially leading
to hardware hangs or system crashes?
> + };
> + };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260515-iris-sc8280xp-v7-0-2e21f6db1897@oss.qualcomm.com?part=5
next prev parent reply other threads:[~2026-05-15 12:08 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-15 10:56 [PATCH v7 0/6] media: iris: enable SM8350 and SC8280XP support Dmitry Baryshkov
2026-05-15 10:56 ` [PATCH v7 1/6] media: dt-bindings: Document SC8280XP/SM8350 Iris Dmitry Baryshkov
2026-05-15 10:56 ` [PATCH v7 2/6] arm64: dts: qcom: sc8280xp: sort reserved memory regions Dmitry Baryshkov
2026-05-15 10:56 ` [PATCH v7 3/6] arm64: dts: qcom: sc8280xp: Add Iris core Dmitry Baryshkov
2026-05-15 11:42 ` sashiko-bot
2026-05-15 12:14 ` Dmitry Baryshkov
2026-05-15 10:56 ` [PATCH v7 4/6] arm64: dts: qcom: sc8280xp-x13s: Enable Iris Dmitry Baryshkov
2026-05-15 10:56 ` [PATCH v7 5/6] arm64: dts: qcom: sm8350: add Iris device Dmitry Baryshkov
2026-05-15 12:08 ` sashiko-bot [this message]
2026-05-15 10:56 ` [PATCH v7 6/6] arm64: dts: qcom: sm8350-hdk: enable Iris core Dmitry Baryshkov
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=20260515120854.C2FBAC2BCB0@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=krzk+dt@kernel.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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