Skip to content

FROMLIST: arm64: dts: qcom: lemans: enable audio ML offload memory an…#1522

Merged
Komal Bajaj (Komal-Bajaj) merged 2 commits into
qualcomm-linux:tech/all/dt/qcs9100from
qti-sbojja:lemans-audio-ML
Jul 17, 2026
Merged

FROMLIST: arm64: dts: qcom: lemans: enable audio ML offload memory an…#1522
Komal Bajaj (Komal-Bajaj) merged 2 commits into
qualcomm-linux:tech/all/dt/qcs9100from
qti-sbojja:lemans-audio-ML

Conversation

@qti-sbojja

Copy link
Copy Markdown
The audio ML (machine-learning) offload use case requires a contiguous,
physically addressable buffer shared with the audio DSP/SPF, and issues
DMA transactions through additional SMMU stream IDs that are not
covered by the existing ADSP mapping.

Add a dedicated reusable shared-dma-pool CMA region (16 MiB, 4 MiB
aligned) and wire it to the q6apm DAIs node via memory-region. A
dedicated pool guarantees the alignment and contiguity the DSP expects
and isolates these allocations from the default CMA region.

Under the EL2 (Gunyah/hypervisor) configuration the SMMU is fully
enforcing, so the ML transactions are otherwise blocked and faulted:

 arm-smmu 15000000.iommu: Blocked unknown Stream ID 0x3060
 arm-smmu 15000000.iommu: Blocked unknown Stream ID 0x3062

Add the ML-related stream IDs (0x3060 mask 0x9, 0x3062 mask 0x1) to the
remoteproc_adsp iommus property in the EL2 overlay so these buffers are
translated by the SMMU instead of being rejected.

@qlijarvis

Copy link
Copy Markdown

PR #1522 — validate-patch

PR: #1522

Verdict Issues Detailed Report
⚠️ 3 Full report

Final Summary

  1. Lore link present: Yes - https://lore.kernel.org/all/20260716151854.3041914-2-pratyush.meduri@oss.qualcomm.com/

  2. Lore link matches PR commits: Yes - diff content is identical; index/line number differences are due to different base trees (legitimate adaptation)

  3. Upstream patch status: ⏳ Decision Pending - posted July 16, 2026; maintainer Konrad Dybcio provided review feedback raising technical concerns (node naming violation, alloc-ranges question, SMMU SID questions) on the same day; no acceptance or rejection decision yet; awaiting author response and likely v2 revision

  4. PR present in qcom-next/topics: Fail - 1/1 commit(s) are missing from both qcom-next and topics

Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #1522 - FROMLIST: arm64: dts: qcom: lemans: enable audio ML offload memory and SMMU mappings
Upstream commit: https://lore.kernel.org/all/20260716151854.3041914-2-pratyush.meduri@oss.qualcomm.com/
Verdict: ⚠️ PARTIAL

Commit Message

Check Status Note
Subject matches upstream Subject identical to lore patch (with FROMLIST: prefix added)
Body preserves rationale Full commit message preserved from lore
Fixes tag present/correct N/A No Fixes tag in upstream patch
Authorship preserved Author matches lore: Pratyush Meduri pratyush.meduri@oss.qualcomm.com
Backport note (if applicable) N/A FROMLIST: prefix used correctly for posted-but-not-merged patch

Diff

File Status Notes
arch/arm64/boot/dts/qcom/lemans-el2.dtso ⚠️ Index line differs (3efbdda vs 621ad93) - likely due to different base commit
arch/arm64/boot/dts/qcom/lemans.dtsi ⚠️ Index line differs (53d0347 vs 3b0539e) and line numbers shifted (@@ -689 vs @@ -624, @@ -8239 vs @@ -8134) - context differences in target tree

Issues

Diff Content Comparison:

  • ✅ All code changes are identical between PR and lore patch
  • ⚠️ Context differences: Line numbers and index hashes differ due to the PR being applied to a different base tree than the lore patch, but the actual hunks (added/removed lines) match exactly
  • This is a legitimate adaptation for the target tree and does not indicate any content divergence

Upstream Community Feedback (from lore thread):
The lore patch has received review feedback from maintainer Konrad Dybcio raising three technical concerns:

  1. Node naming violation: The reserved-memory child node qcom,audio-ml uses a vendor prefix and comma, violating DT naming conventions. Konrad states: "Node names must not contain commas and should be generic"

  2. alloc-ranges question: Konrad asks "Is the last byte forbidden on purpose?" regarding alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>

  3. SMMU stream ID questions: Konrad asks whether the Gunyah setup needs updates and whether the existing SIDs are wrong or just used for other offload use cases

Sashiko AI bot also flagged similar issues in the lore thread, including the node naming problem and concerns about whether the memory-region property is supported by the qcom,q6apm-dais binding.

Verdict

The PR patch is a faithful representation of the lore upstream patch - all code changes match exactly. However, the upstream patch itself has unresolved technical issues raised by the maintainer that need to be addressed before it can be merged upstream.

Recommendation: The PR should be held pending upstream resolution. The author needs to:

  1. Address Konrad Dybcio's feedback on the lore thread (node naming, alloc-ranges, SMMU SID questions)
  2. Post a v2 revision to the mailing list incorporating the fixes
  3. Update this PR to match the revised upstream patch once maintainer concerns are resolved

Merging this PR now would import a patch that is likely to be rejected or require significant changes upstream, creating divergence between the vendor tree and mainline.

Final Summary

  1. Lore link present: Yes - https://lore.kernel.org/all/20260716151854.3041914-2-pratyush.meduri@oss.qualcomm.com/

  2. Lore link matches PR commits: Yes - diff content is identical; index/line number differences are due to different base trees (legitimate adaptation)

  3. Upstream patch status: ⏳ Decision Pending - posted July 16, 2026; maintainer Konrad Dybcio provided review feedback raising technical concerns (node naming violation, alloc-ranges question, SMMU SID questions) on the same day; no acceptance or rejection decision yet; awaiting author response and likely v2 revision

  4. PR present in qcom-next/topics: No - per integration_presence_report.md, commit is missing from both qcom-next (a5cf3debd8c3) and all kernel topic branches; no subject, patch-id, or tree-content match found

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: a5cf3debd8c3c660711ad586ad4bb84e9ca42635
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/1 [PATCH] FROMLIST: arm64: dts: qcom: lemans: enable audio ML offload missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing

Final Status

overall_status: FAIL
present_commits: 0/1
partial_commits: 0/1
missing_commits: 1/1
topics_checked_for_commits: 1/1
final_summary: PR present in qcom-next/topics: Fail - 1/1 commit(s) are missing from both qcom-next and topics

@qlijarvis

Copy link
Copy Markdown

PR #1522 — checker-log-analyzer

PR: #1522
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/29512580319

Checker Result Summary
Checker Result Summary
checkpatch No style issues
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check iommus array too long + unevaluated properties
sparse-check ⏭️ Skipped (no C/H changes)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Prefix and Link validated
tag-check FROMLIST: prefix present

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1522 - FROMLIST: arm64: dts: qcom: lemans: enable audio ML offload memory and SMMU mappings
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/29512580319

Checker Result Summary
checkpatch No style issues
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check iommus array too long + unevaluated properties
sparse-check ⏭️ Skipped (no C/H changes)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Prefix and Link validated
tag-check FROMLIST: prefix present

❌ dtb-check

Root cause: The qcom,sa8775p-pas.yaml binding schema does not support multiple iommus entries or the iommus property itself.

Failure details:

lemans-evk-el2.dtb: remoteproc@30000000 (qcom,sa8775p-adsp-pas): 
  iommus: [[55, 12288, 0], [55, 12384, 9], [55, 12386, 1]] is too long
  from schema $id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml#

lemans-evk-el2.dtb: remoteproc@30000000 (qcom,sa8775p-adsp-pas): 
  Unevaluated properties are not allowed ('glink-edge', 'interconnects', 'iommus' were unexpected)
  from schema $id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml#

The patch adds two additional SMMU stream IDs to remoteproc_adsp in arch/arm64/boot/dts/qcom/lemans-el2.dtso:24:

 &remoteproc_adsp {
-	iommus = <&apps_smmu 0x3000 0x0>;
+	iommus = <&apps_smmu 0x3000 0x0>,
+		<&apps_smmu 0x3060 0x9>,
+		<&apps_smmu 0x3062 0x1>;
 };

This causes two schema validation failures:

  1. iommus array too long: The binding currently expects a maximum of 1 iommus entry (the original 0x3000), but the patch adds 3 entries total. The schema needs maxItems: 3 (or higher) to accommodate the ML offload stream IDs.

  2. Unevaluated properties: The binding uses unevaluatedProperties: false but does not declare iommus, glink-edge, or interconnects in its properties: section. These properties are inherited from parent schemas but not explicitly allowed.

Fix: Update Documentation/devicetree/bindings/remoteproc/qcom,sa8775p-pas.yaml:

  1. Add iommus to the properties: section with appropriate minItems/maxItems:

    properties:
      iommus:
        minItems: 1
        maxItems: 3
        description: |
          SMMU stream IDs for the remoteproc. EL2 configurations may require
          additional stream IDs for ML offload or other use cases.
  2. Either add glink-edge and interconnects to properties:, or change unevaluatedProperties: false to additionalProperties: false and ensure these properties are covered by a parent schema reference.

  3. If qcom,sa8775p-pas.yaml references a parent schema (e.g., qcom,pas-common.yaml), ensure the parent schema declares these properties.

Reproduce locally:

make -j$(nproc) O=out defconfig
make -j$(nproc) O=out CHECK_DTBS=y arch/arm64/boot/dts/qcom/lemans-evk-el2.dtb

Verdict

1 blocker must be fixed before merge: The DT binding schema qcom,sa8775p-pas.yaml must be updated to allow multiple iommus entries and declare iommus, glink-edge, and interconnects as valid properties. The DTS changes are correct and match the commit message — the binding schema is simply incomplete.

Recommended approach:

  1. Submit a separate patch to update Documentation/devicetree/bindings/remoteproc/qcom,sa8775p-pas.yaml (this should be posted upstream first as a binding fix).
  2. Once the binding patch is merged (or included in the same series), this DTS patch can be merged.
  3. Alternatively, if the binding update is already in-flight upstream, reference it in the commit message and merge both patches together in the topic branch.

@qcomlnxci
qcomlnxci requested a review from a team July 17, 2026 10:07
@qlijarvis

Copy link
Copy Markdown

PR #1522 — validate-patch

PR: #1522

Verdict Issues Detailed Report
0 Full report

Final Summary

  1. Lore link present: Yes — both commits have valid lore.kernel.org links
  2. Lore link matches PR commits: Partial — commit 1/2 has authorship mismatch (missing original author's Signed-off-by); commit 2/2 matches faithfully
  3. Upstream patch status: ⏳ Decision Pending — posted 2026-07-17, too recent for maintainer decision; automated review feedback present
  4. PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1522 - "FROMLIST: dt-bindings: remoteproc: qcom,pas-common: allow up to 3 iommus" + "FROMLIST: arm64: dts: qcom: lemans: enable audio ML offload memory and SMMU mappings"

Verdict: ❌ FAIL


Commit 1/2: dt-bindings: remoteproc: qcom,pas-common: allow up to 3 iommus

Upstream commit: https://lore.kernel.org/all/20260717095825.3962666-2-pratyush.meduri@oss.qualcomm.com/

Commit Message

Check Status Note
Subject matches upstream Subject identical except for FROMLIST: prefix (expected)
Body preserves rationale Body text identical to upstream
Fixes tag present/correct N/A No Fixes tag in upstream or PR
Authorship preserved FAIL: Upstream author is Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>, but PR shows From: Sairamreddy Bojja <sbojja@qti.qualcomm.com>
Backport note (if applicable) N/A Not a backport (FROMLIST)

Diff

File Status Notes
Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml ⚠️ Context mismatch: PR modifies lines 45-47 (starting at shutdown-ack), upstream modifies lines 33-35 (no shutdown-ack context). Different base tree versions.

Diff comparison details:

  • PR patch context shows shutdown-ack constant definition before the iommus property
  • Upstream lore patch shows maxItems: 6 (for interrupts) before the iommus property
  • The actual change is identical: maxItems: 1minItems: 1 + maxItems: 3
  • This is a legitimate context-only delta due to different kernel base versions

Issues

  1. Authorship violation (FROMLIST): The From: field shows Sairamreddy Bojja <sbojja@qti.qualcomm.com>, but the upstream lore patch author is Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>. For FROMLIST: commits, the submitter may differ from the original author, but the original author's Signed-off-by: must be present. The PR commit message is missing Signed-off-by: Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>.

Commit 2/2: arm64: dts: qcom: lemans: enable audio ML offload memory and SMMU mappings

Upstream commit: https://lore.kernel.org/all/20260717095825.3962666-3-pratyush.meduri@oss.qualcomm.com/

Commit Message

Check Status Note
Subject matches upstream Subject identical except for FROMLIST: prefix (expected)
Body preserves rationale Body text identical to upstream
Fixes tag present/correct N/A No Fixes tag in upstream or PR
Authorship preserved From: Pratyush Meduri <pratyush.meduri@oss.qualcomm.com> matches upstream
Backport note (if applicable) N/A Not a backport (FROMLIST)

Diff

File Status Notes
arch/arm64/boot/dts/qcom/lemans-el2.dtso ⚠️ Context mismatch: PR modifies line 21 (&remoteproc_adsp block), upstream modifies line 19. Line number shift due to different base.
arch/arm64/boot/dts/qcom/lemans.dtsi ⚠️ Context mismatch: PR adds audio_cma_mem at line 689, upstream at line 624. PR adds memory-region at line 8247, upstream at line 8142. Significant line offset.

Diff comparison details:

  • lemans-el2.dtso: The change is identical (adding two SMMU stream IDs), only line numbers differ
  • lemans.dtsi: Both changes are identical:
    • Adding audio_cma_mem reserved memory region
    • Adding memory-region = <&audio_cma_mem>; to q6apmdai node
  • Line number differences are due to different kernel base versions (expected for topic branches)

Issues

None for this commit — diff content is faithful to upstream, authorship is correct.


Upstream Patch Status

Commit Community Verdict
[PATCH v2 1/3] dt-bindings: remoteproc: qcom,pas-common: allow up to 3 iommus Decision Pending — Posted 2026-07-17, no maintainer decision yet. Sashiko AI bot provided automated review feedback.
[PATCH v2 2/3] arm64: dts: qcom: lemans: enable audio ML offload memory and SMMU mappings Decision Pending — Posted 2026-07-17, no maintainer decision yet. Sashiko AI bot flagged potential IOMMU domain mismatch issue.

Evidence:


Integration Presence (qcom-next/topics)

Commit Status
1/2: dt-bindings: remoteproc: qcom,pas-common: allow up to 3 iommus Present in qcom-next — all checked added lines are present
2/2: arm64: dts: qcom: lemans: enable audio ML offload memory and SMMU mappings Missing — not found in qcom-next or topics

Source: integration_presence_report.md (authoritative)

Overall integration status: FAIL — 1/2 commits missing from both qcom-next and topics


Final Verdict

❌ FAIL — Do not merge without correction.

Critical Issues

  1. Commit 1/2 authorship violation: The PR commit shows From: Sairamreddy Bojja but the upstream lore patch author is Pratyush Meduri. For FROMLIST: commits, the original author's Signed-off-by: must be present in the commit message. Currently missing.

  2. Commit 2/2 not in integration tree: The second commit is not present in qcom-next or topics, despite being part of the same upstream series as commit 1/2 (which is already in qcom-next).

Required Actions

  1. Fix commit 1/2 authorship:

    git commit --amend --author="Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>"
    

    Then add Signed-off-by: Sairamreddy Bojja <sbojja@qti.qualcomm.com> as the submitter's sign-off (after the original author's sign-off).

  2. Verify commit 2/2 integration status: Confirm why commit 2/2 is not in qcom-next when commit 1/2 is already present. If this is intentional (e.g., waiting for dt-binding to land first), document the dependency. Otherwise, investigate the integration gap.

  3. Monitor upstream status: Both patches are under review (posted < 24 hours ago). Wait for maintainer feedback before finalizing the PR.


Final Summary

  1. Lore link present: Yes — both commits have valid lore.kernel.org links
  2. Lore link matches PR commits: Partial — commit 1/2 has authorship mismatch (missing original author's Signed-off-by); commit 2/2 matches faithfully
  3. Upstream patch status: ⏳ Decision Pending — posted 2026-07-17, too recent for maintainer decision; automated review feedback present
  4. PR present in qcom-next/topics: Fail — commit 1/2 present in qcom-next, commit 2/2 missing from both qcom-next and topics

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: a5cf3debd8c3c660711ad586ad4bb84e9ca42635
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/2 [PATCH 1/2] FROMLIST: dt-bindings: remoteproc: qcom,pas-common: allow present - all checked added lines are present skipped - not checked because qcom-next already contains the change present
2/2 [PATCH 2/2] FROMLIST: arm64: dts: qcom: lemans: enable audio ML missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing

Final Status

overall_status: FAIL
present_commits: 1/2
partial_commits: 0/2
missing_commits: 1/2
topics_checked_for_commits: 1/2
final_summary: PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics

@qlijarvis

Copy link
Copy Markdown

PR #1522 — checker-log-analyzer

PR: #1522
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/29572405436

Checker Result Summary
Checker Result Summary
checkpatch No style issues
dt-binding-check Schema validation passed
dtb-check No new DTB warnings
sparse-check ⏭️ Skipped (no C/H files)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Author mismatch on commit 1/2
tag-check Both commits have FROMLIST: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1522 - FROMLIST: dt-bindings: remoteproc: qcom,pas-common: allow up to 3 iommus
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/29572405436

Checker Result Summary
checkpatch No style issues
dt-binding-check Schema validation passed
dtb-check No new DTB warnings
sparse-check ⏭️ Skipped (no C/H files)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Author mismatch on commit 1/2
tag-check Both commits have FROMLIST: prefix

❌ check-patch-compliance

Root cause: Commit 535c87b has an author mismatch between the upstream lore patch and the local git commit.

Failure details:

Checking commit: FROMLIST: dt-bindings: remoteproc: qcom,pas-common: allow up to 3 iommus
Author mismatch:
  Original author: Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>
  Commit author : Sairamreddy Bojja <sbojja@qti.qualcomm.com>

The upstream patch at https://lore.kernel.org/all/20260717095825.3962666-2-pratyush.meduri@oss.qualcomm.com/ was authored by Pratyush Meduri, but the local commit shows Sairamreddy Bojja as the author.

Fix: Amend the commit to restore the original author:

git rebase -i <base_sha>   # mark commit 535c87b9dea5 as 'edit'
git commit --amend --author="Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>" --no-edit
git rebase --continue

Reproduce locally:

# Fetch the upstream patch
b4 am --single-message -C -l -3 https://lore.kernel.org/all/20260717095825.3962666-2-pratyush.meduri@oss.qualcomm.com/ -o /tmp/out

# Compare authors
git show 535c87b9dea5 --format="%an <%ae>" --no-patch
cat /tmp/out/*.mbx | grep "^From:"

Verdict

Fix 1 blocker before merge: The author mismatch must be corrected to preserve proper attribution of the upstream patch. All other checkers passed cleanly.

Pratyush Meduri added 2 commits July 17, 2026 16:28
The ADSP PAS on several Qualcomm SoCs (e.g. SA8775P/lemans, QCS8300,
Monaco) needs more than a single SMMU stream ID for the audio ML
(machine-learning) offload use case. In addition to the primary
ADSP stream ID, the DSP/SPF issues DMA transactions through extra
stream IDs that are not covered by the existing single-entry mapping.

Relax the iommus constraint to allow between 1 and 3 entries so the
additional ML offload stream IDs can be described, fixing dtb_check
schema violations on device trees that add them.

Link: https://lore.kernel.org/all/20260717095825.3962666-2-pratyush.meduri@oss.qualcomm.com/
Signed-off-by: Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>
…d SMMU mappings

The audio ML (machine-learning) offload use case requires a contiguous,
physically addressable buffer shared with the audio DSP/SPF, and issues
DMA transactions through additional SMMU stream IDs that are not
covered by the existing ADSP mapping.

Add a dedicated reusable shared-dma-pool CMA region (16 MiB, 4 MiB
aligned) and wire it to the q6apm DAIs node via memory-region. A
dedicated pool guarantees the alignment and contiguity the DSP expects
and isolates these allocations from the default CMA region.

Under the EL2 (Gunyah/hypervisor) configuration the SMMU is fully
enforcing, so the ML transactions are otherwise blocked and faulted:

 arm-smmu 15000000.iommu: Blocked unknown Stream ID 0x3060
 arm-smmu 15000000.iommu: Blocked unknown Stream ID 0x3062

Add the ML-related stream IDs (0x3060 mask 0x9, 0x3062 mask 0x1) to the
remoteproc_adsp iommus property in the EL2 overlay so these buffers are
translated by the SMMU instead of being rejected.

Link: https://lore.kernel.org/all/20260717095825.3962666-3-pratyush.meduri@oss.qualcomm.com/
Signed-off-by: Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>
@Komal-Bajaj
Komal Bajaj (Komal-Bajaj) merged commit f75b90a into qualcomm-linux:tech/all/dt/qcs9100 Jul 17, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants