Re: [PATCH v3 1/6] dt-bindings: iommu: arm,smmu: Document interconnects property

Dmitry Baryshkov <[email protected]>
Newsgroups org.kernel.vger.linux-devicetree,dev.linux.lists.iommu,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel
Message-ID <haajolsmvil7adq4pfanmdrkvgqygwioncpikawhbvvar5kpnp@rese34d5wt5j>
On Tue, Aug 11, 2026 at 08:39:41PM +0530, Bibek Kumar Patro wrote:
> 
> 
> On 7/20/2026 8:10 PM, Dmitry Baryshkov wrote:
> > On Mon, Jul 20, 2026 at 07:41:35PM +0530, Bibek Kumar Patro wrote:
> > > 
> > > 
> > > On 7/8/2026 8:48 PM, Bjorn Andersson wrote:
> > > > On Wed, Jul 08, 2026 at 08:22:00PM +0530, Bibek Kumar Patro wrote:
> > > > > 
> > > > > 
> > > > > On 7/7/2026 10:12 PM, Dmitry Baryshkov wrote:
> > > > > > On Tue, Jul 07, 2026 at 06:06:59PM +0530, Bibek Kumar Patro wrote:
> > > > > > > 
> > > > > > > 
> > > > > > > On 7/6/2026 11:09 PM, Dmitry Baryshkov wrote:
> > > > > > > > On Mon, Jul 06, 2026 at 10:26:34PM +0530, Bibek Kumar Patro wrote:
> > > > > > > > > Some SoC implementations require a bandwidth vote on an interconnect
> > > > > > > > > path before the SMMU register space is accessible. Add the optional
> > > > > > > > 
> > > > > > > > Why is it limited only to those SoCs? Is it also applicable to other
> > > > > > > > Qualcomm SoCs?
> > > > > > > > 
> > > > > > > 
> > > > > > > I was hoping to keep this series focused on the core infrastructure
> > > > > > > changes: the bindings, base ICC bandwidth-voting support, and DT
> > > > > > > interconnect properties for the platforms currently supported on
> > > > > > > Qualcomm Linux and have been validated so far.
> > > > > > > 
> > > > > > > The additional targets have not been tested yet, so I'd prefer
> > > > > > > to add their support in a separate follow-up series once validation
> > > > > > > is complete, rather than growing this series further. WDYT?
> > > > > > 
> > > > > > Then it should be a part of the commit message. All SoCs since SDM12345
> > > > > > need to vote on the interconnect (and then, in the cover letter mention
> > > > > > that you convert only a few of the SoCs). We possibly can help with
> > > > > > testing on other platforms.
> > > > > > 
> > > > > 
> > > > > Ack, sounds reasonable.
> > > > > I'll add the first platform onwards which interconnect voting is required in
> > > > > commit description.
> > > > 
> > > > But to what degree is this related to a specific set of platforms? If we
> > > > look ahead, aren't we expecting the list to grow to include all
> > > > platforms in the end - resulting in a lot of noise and churn.
> > > > 
> > > 
> > > We have seen this issue consistently on SM8750 and later platforms, along
> > > with at least one customer-reported instance on SM8550. As a result,
> > > downstream Android implementations already vote for the required
> > > interconnect bandwidth explicitly on these platforms.
> > > 
> > > On Qualcomm Linux targets, we have observed similar issues on Kodiak, with a
> > > few occurrences on Talos as well.
> > > 
> > > My understanding is that the interconnects property remains optional, but in
> > > practice it is needed for Adreno SMMU operation on these platforms.
> > 
> > So, it goes back to Kodiak and Talos. What about SM8150? SDM845? Earlier
> > platforms? Is it limited to MMU-500? A6xx+?
> > 
> 
> Thanks for waiting this long for response,
> I rechecked all the legacy platforms which are present in upstream.

Thanks for your effort and for the very detailed explanations below.

> 
> As per the design it will be applicable to all targets with MMU-500,
> (Even though issue hasn't been reported for all the targets on MMU-500,
> e.g sm8650/sm8250 but the nodes will still be needed).
> It's independent of adreno version i.e A6xx+/A5xx+.

Ack, this sounds reasonable and allows you to easility select if the fix
is to be applied or not by using the generic compat strings.

> 
>   Adreno SMMU — upstream Qualcomm targets
> 
>   SMMU-v2 (QSMMU)
>   Platform   Compatible
>   ---------  ------------------------------------
>   MSM8996    qcom,msm8996-smmu-v2, qcom,adreno-smmu
>   SDM670     qcom,sdm670-smmu-v2, qcom,adreno-smmu
>   SDM845     qcom,sdm845-smmu-v2, qcom,adreno-smmu
>   SC7180     qcom,sc7180-smmu-v2, qcom,adreno-smmu
>   SM6350     qcom,sm6350-smmu-v2, qcom,adreno-smmu
>   SM7150     qcom,sm7150-smmu-v2, qcom,adreno-smmu
>   SM6375     qcom,sm6375-smmu-v2  (apps only, no adreno-smmu node)

	adreno_smmu: iommu@5940000 {
		compatible = "qcom,sm6375-smmu-v2", "qcom,smmu-v2";


>   MSM8998    qcom,msm8998-smmu-v2 (apps only, no adreno-smmu node)

	adreno_smmu: iommu@5040000 {
		compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";


>   SDM630     qcom,sdm630-smmu-v2  (adreno binding to be fixed)

What exactly needs to be fixed?

	kgsl_smmu: iommu@5040000 {
		compatible = "qcom,sdm630-smmu-v2", "qcom,adreno-smmu",
			     "qcom,smmu-v2";


> 
>   SMMU-500 (MMU-500) — with qcom,adreno-smmu
>   Platform   Compatible
>   ---------  ------------------------------------
>   SM6115     qcom,sm6115-smmu-500, qcom,adreno-smmu
>   QCM2290    qcom,qcm2290-smmu-500, qcom,adreno-smmu
>   SM8150     qcom,sm8150-smmu-500, qcom,adreno-smmu
>   SM8250     qcom,sm8250-smmu-500, qcom,adreno-smmu
>   SC8180x    qcom,sc8180x-smmu-500, qcom,adreno-smmu
>   SM8350     qcom,sm8350-smmu-500, qcom,adreno-smmu
>   SC7280     qcom,sc7280-smmu-500, qcom,adreno-smmu  ← our patch series
>   SM8450     qcom,sm8450-smmu-500, qcom,adreno-smmu
>   SC8280xp   qcom,sc8280xp-smmu-500, qcom,adreno-smmu
>   QCS615     qcom,qcs615-smmu-500, qcom,adreno-smmu  ← our patch series
>   SM8550     qcom,sm8550-smmu-500, qcom,adreno-smmu
>   SA8775P    qcom,sa8775p-smmu-500, qcom,adreno-smmu  ← our patch series
>   SM8650     qcom,sm8650-smmu-500, qcom,adreno-smmu
>   QCS8300    qcom,qcs8300-smmu-500, qcom,adreno-smmu  ← our patch series
>   SAR2130P   qcom,sar2130p-smmu-500, qcom,adreno-smmu
>   X1E80100   qcom,x1e80100-smmu-500, qcom,adreno-smmu
>   Glymur     qcom,glymur-smmu-500, qcom,adreno-smmu
>   Milos      qcom,milos-smmu-500, qcom,adreno-smmu
> 
>   SMMU-500 — without qcom,adreno-smmu (apps SMMU only)
>   SDM670     qcom,sdm670-smmu-500  (apps)
>   SDM845     qcom,sdm845-smmu-500  (apps)
>   SC7180     qcom,sc7180-smmu-500  (apps)
>   SM6350     qcom,sm6350-smmu-500  (apps)

All these platforms use a separate v2 QSMMU for Adreno

>   SM8450     qcom,sm8450-smmu-500  (apps)

	adreno_smmu: iommu@3da0000 {
		compatible = "qcom,sm8450-smmu-500", "qcom,adreno-smmu",
			     "qcom,smmu-500", "arm,mmu-500";


>   SC8280xp   qcom,sc8280xp-smmu-500 (apps)

	gpu_smmu: iommu@3da0000 {
		compatible = "qcom,sc8280xp-smmu-500", "qcom,adreno-smmu",
			     "qcom,smmu-500", "arm,mmu-500";

>   SM8750     qcom,sm8750-smmu-500  (adreno-smmu not available yet)

Yes, patches pending, I think.

-- 
With best wishes
Dmitry
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.