Skip to content

PENDING: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings - #2156

Open
qti-sbojja wants to merge 1 commit into
qualcomm-linux:tech/all/dt/qcs8300from
qti-sbojja:audio-ML-M
Open

qti-sbojja wants to merge 1 commit into
qualcomm-linux:tech/all/dt/qcs8300from
qti-sbojja:audio-ML-M

Conversation

@qti-sbojja

@qti-sbojja qti-sbojja commented Oct 29, 2026 •

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 0x2060
arm-smmu 15000000.iommu: Blocked unknown Stream ID 0x2062

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.

CRs-Fixed: 4727557
JIRA: https://jira-dc.qualcomm.com/jira/browse/QLIJIRA-210

@qlijarvis

Copy link
Copy Markdown

PR #2156 — validate-patch

PR: #2156

Verdict Issues Detailed Report
❌ 0 Full report

Final Summary

  1. Lore link present: Yes — https://lore.kernel.org/all/20260717095825.3962666-4-pratyush.meduri@oss.qualcomm.com/
  2. Lore link matches PR commits: No — PR contains extra stream ID 0x2040 mask 0xf in monaco-el2.dtso not present in lore patch; also inherits rejected downstream node naming
  3. Upstream patch status: ❌ NACKed — Krzysztof Kozlowski (DT maintainer) on 2026-07-20: "NAK. You ignore feedback and keep sending us downstream junk directly. DO NOT SEND downstream code. EVER." (node name qcom,audio-ml uses downstream vendor prefix pattern)
  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: #2156 - FROMLIST: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
Upstream commit: https://lore.kernel.org/all/20260717095825.3962666-4-pratyush.meduri@oss.qualcomm.com/
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream ✅ Subject identical to lore patch v2 3/3
Body preserves rationale ✅ Full commit message preserved verbatim
Fixes tag present/correct N/A No Fixes tag in upstream or PR
Authorship preserved ✅ From: matches lore author (Pratyush Meduri) — correct for FROMLIST:
Backport note (if applicable) N/A Not a backport; FROMLIST: prefix correct

Diff

File Status Notes
arch/arm64/boot/dts/qcom/monaco-el2.dtso ❌ Context mismatch — PR shows base index 7cae65ae499c3, lore shows a7e3270f8609; PR adds 3 iommus entries (0x2000, 0x2040, 0x2060, 0x2062), lore adds only 3 entries (0x2000, 0x2060, 0x2062) — PR contains extra stream ID 0x2040 mask 0xf not in lore patch
arch/arm64/boot/dts/qcom/monaco.dtsi ❌ Context mismatch — PR shows base index a37e863109f11, lore shows 64fc0d592282; PR adds audio_cma_mem at line 769, lore at line 732; PR adds memory-region at line 2899, lore at line 2855 — line number shifts indicate different base tree

Issues

Critical: Diff content divergence

  1. Extra SMMU stream ID in PR (monaco-el2.dtso):

    • Lore patch adds:
      +	iommus = <&apps_smmu 0x2000 0x0>,
      +		<&apps_smmu 0x2060 0x9>,
      +		<&apps_smmu 0x2062 0x1>;
    • PR patch adds:
      +	iommus = <&apps_smmu 0x2000 0x0>,
      +		<&apps_smmu 0x2040 0xf>,
      +		<&apps_smmu 0x2060 0x9>,
      +		<&apps_smmu 0x2062 0x1>;
    • The PR contains an additional stream ID 0x2040 mask 0xf that is not present in the lore patch. This is undocumented extra content.
  2. Base tree mismatch:

    • The PR patch applies to a different base commit than the lore patch (lore base: b8809969e1d7a591e0f49dd464a5d04b3cf02ab1; PR base appears to be a different integration tree).
    • Line number shifts are expected when backporting to a vendor tree, but the semantic change (extra stream ID) is not.
  3. Downstream node naming (NAKed by maintainer):

    • The lore patch uses audio_cma_mem: qcom,audio-ml as the node name.
    • Krzysztof Kozlowski (DT maintainer) issued an explicit NAK on 2026-07-20:

      "NAK. You ignore feedback and keep sending us downstream junk directly. DO NOT SEND downstream code. EVER."

    • The qcom, vendor prefix in the node name is a downstream pattern rejected by upstream maintainers.
    • The PR inherits this rejected naming pattern from the lore patch.

Verdict

Do not merge. The PR contains:

  1. Undocumented extra content (stream ID 0x2040 mask 0xf) not present in the linked lore patch — violates the FROMLIST: contract that the PR should faithfully represent the upstream posting.
  2. Upstream patch was NACKed by the DT maintainer due to downstream naming conventions (qcom,audio-ml node name) — merging this would integrate rejected code.

Required fixes:

  1. Remove the extra stream ID 0x2040 mask 0xf from monaco-el2.dtso, or document why it is needed and post it as a separate QCLINUX: commit.
  2. Wait for the upstream patch to be revised and accepted (node name must be changed to drop the qcom, prefix per maintainer feedback).
  3. Update the Link: tag to point to the accepted revision once available.

Final Summary

  1. Lore link present: Yes — https://lore.kernel.org/all/20260717095825.3962666-4-pratyush.meduri@oss.qualcomm.com/
  2. Lore link matches PR commits: No — PR contains extra stream ID 0x2040 mask 0xf in monaco-el2.dtso not present in lore patch; also inherits rejected downstream node naming
  3. Upstream patch status: ❌ NACKed — Krzysztof Kozlowski (DT maintainer) on 2026-07-20: "NAK. You ignore feedback and keep sending us downstream junk directly. DO NOT SEND downstream code. EVER." (node name qcom,audio-ml uses downstream vendor prefix pattern)
  4. PR present in qcom-next/topics: No — integration_presence_report.md shows 1/1 commit 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: c7896917e523946138ce654d4b6c1e33d5a8f4e5
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: monaco: 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 #2156 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ✅ No style issues
dt-binding-check ⏭️ No binding changes
dtb-check ✅ DTB validation passed
sparse-check ⏭️ No C/H file changes
check-uapi-headers ⏭️ No UAPI changes
check-patch-compliance ❌ Content mismatch with upstream link
tag-check ✅ Valid FROMLIST: prefix present

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

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

Checker Result Summary
checkpatch ✅ No style issues
dt-binding-check ⏭️ No binding changes
dtb-check ✅ DTB validation passed
sparse-check ⏭️ No C/H file changes
check-uapi-headers ⏭️ No UAPI changes
check-patch-compliance ❌ Content mismatch with upstream link
tag-check ✅ Valid FROMLIST: prefix present

❌ check-patch-compliance

Root cause: The patch content in the PR differs from the upstream patch referenced in the Link trailer.

Failure details:

Checking commit: FROMLIST: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
Change is different from the one mentioned in Link

Analysis:

The commit references this upstream link:

Link: https://lore.kernel.org/all/20260717095825.3962666-4-pratyush.meduri@oss.qualcomm.com/

The checker detected that the patch content in the PR does not match the upstream patch at this link. This typically occurs when:

  1. Context-only differences — Line numbers shifted due to other patches, but actual changes are identical (not a real issue)
  2. Legitimate adaptations — The patch was modified to fit the target tree (should be documented in commit message)
  3. Missing hunks — Some changes from upstream were omitted (needs investigation)
  4. Extra hunks — Additional changes not in upstream (should be split or attributed separately)

PR changes:

  • monaco-el2.dtso: Adds 3 additional SMMU stream IDs (0x2040, 0x2060, 0x2062) to remoteproc_adsp
  • monaco.dtsi: Adds audio_cma_mem reserved memory region (16 MiB CMA pool) and wires it to q6apmdai via memory-region property

Fix:

To diagnose the exact difference:

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

# Compare the actual code changes (ignoring context)
diff <(git format-patch -1 77b03e31e60c6a27a90a6a6d389432704e5fb893 --stdout | \
       awk '/^diff/,/^--$/' | grep -E '^[+-][^+-]') \
     <(awk '/^diff/,/^--$/' /tmp/upstream/*.mbx | grep -E '^[+-][^+-]')

Possible resolutions:

  1. If differences are context-only (line numbers shifted): This is a false positive — the checker has limitations with context shifts. Document this in the PR description.

  2. If legitimate adaptations exist: Add a note in the commit message explaining why the patch differs from upstream, e.g.:

    [ Adapted for kernel-topics tree: added stream ID 0x2040 which is
      required in this tree but not yet in upstream ]
    
  3. If the patch is genuinely different: Either:

    • Update the patch to match upstream exactly, OR
    • Change the prefix from FROMLIST: to BACKPORT: if modifications were intentional, OR
    • Remove the Link: trailer if this is a vendor-specific adaptation

Reproduce locally:

cd <kernel-tree>
git checkout 77b03e31e60c6a27a90a6a6d389432704e5fb893
b4 am -C -l -3 https://lore.kernel.org/all/20260717095825.3962666-4-pratyush.meduri@oss.qualcomm.com/ -o /tmp/upstream
# Manually compare the patches

Verdict

1 blocker must be resolved before merge:

The check-patch-compliance failure indicates the patch content does not match the upstream link. This must be investigated to determine if:

  • The difference is legitimate and should be documented
  • The patch should be updated to match upstream
  • The prefix should be changed from FROMLIST: to BACKPORT:

All other checkers passed or were correctly skipped. Once the content mismatch is resolved or explained, the PR will be ready to merge.

… 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 0x2060
 arm-smmu 15000000.iommu: Blocked unknown Stream ID 0x2062

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.

Signed-off-by: Sairamreddy Bojja <sbojja@qti.qualcomm.com>
@qti-sbojja qti-sbojja changed the title FROMLIST: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings PENDING: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings Oct 30, 2026
@qcomlnxci
qcomlnxci requested a review from a team October 30, 2026 07:14
@qlijarvis

Copy link
Copy Markdown

PR #2156 — validate-patch

PR: #2156

Verdict Issues Detailed Report
⚠️ 0 Full report

Final Summary

  1. Lore link present: No — PENDING: prefix; no lore link expected or required for work-in-progress commits
  2. Lore link matches PR commits: N/A — no lore link to compare against (PENDING: commits are not posted upstream)
  3. Upstream patch status: N/A — vendor work-in-progress, not posted upstream by design
  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: #2156 - PENDING: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
Upstream commit: N/A (PENDING: prefix - work-in-progress, not posted upstream)
Verdict: ⚠️ N/A - PENDING commit (vendor work-in-progress)

Commit Message

Check Status Note
Subject matches upstream N/A PENDING: prefix - no upstream source to compare
Body preserves rationale ✅ Clear problem statement with error logs and solution description
Fixes tag present/correct N/A New feature addition, not a fix
Authorship preserved ✅ Author: Sairamreddy Bojja with valid Signed-off-by
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
arch/arm64/boot/dts/qcom/monaco-el2.dtso ✅ Adds SMMU stream IDs for ML offload (0x2040, 0x2060, 0x2062)
arch/arm64/boot/dts/qcom/monaco.dtsi ✅ Adds 16 MiB CMA region and wires to q6apm DAIs node

Issues

None - commit message is well-structured with clear rationale, error evidence, and solution description. The PENDING: prefix correctly indicates this is work-in-progress not yet posted upstream.

Verdict

N/A for upstream validation - this is a vendor work-in-progress commit with PENDING: prefix. The commit message quality is good: it explains the use case (audio ML offload), documents the problem (SMMU blocking unknown stream IDs with actual error logs), and describes the solution (dedicated CMA region + additional SMMU mappings). However, the commit is missing from both qcom-next and topics branches, which is a concern for a PR submission.

Final Summary

  1. Lore link present: No — PENDING: prefix; no lore link expected or required for work-in-progress commits
  2. Lore link matches PR commits: N/A — no lore link to compare against (PENDING: commits are not posted upstream)
  3. Upstream patch status: N/A — vendor work-in-progress, not posted upstream by design
  4. PR present in qcom-next/topics: ❌ Fail - commit is missing from both qcom-next and topics branches (0/1 commits present). This is unexpected for a PR submission and suggests the change has not been integrated into any topic branch yet.

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: c7896917e523946138ce654d4b6c1e33d5a8f4e5
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/1 [PATCH] PENDING: arm64: dts: qcom: monaco: 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 #2156 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ✅ No style issues
dt-binding-check ⏭️ No binding changes
dtb-check ✅ DTB validation passed
sparse-check ⏭️ No C/H changes
check-uapi-headers ⏭️ No UAPI changes
check-patch-compliance ❌ PENDING: prefix not allowed
tag-check ❌ PENDING: prefix not allowed for non-qcom-next branches

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #2156 - PENDING: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/41018876812
Target branch: tech/all/dt/qcs8300

Checker Result Summary
checkpatch ✅ No style issues
dt-binding-check ⏭️ No binding changes
dtb-check ✅ DTB validation passed
sparse-check ⏭️ No C/H changes
check-uapi-headers ⏭️ No UAPI changes
check-patch-compliance ❌ PENDING: prefix not allowed
tag-check ❌ PENDING: prefix not allowed for non-qcom-next branches

❌ check-patch-compliance

Root cause: Commit subject uses PENDING: prefix, which is not in the checker's allowed list (FROMLIST:, FROMGIT:, UPSTREAM:, BACKPORT:).

Failure details:

Checking commit: PENDING: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
Commit summary does not start with a required prefix

Analysis:
The check-patch-compliance checker enforces a strict subset of upstream-linkable prefixes and rejects vendor-internal tags like PENDING: and QCLINUX:. This is a known checker limitation for work-in-progress or vendor-only commits.

Fix:
Since this patch is not yet posted upstream (indicated by PENDING:), you have two options:

  1. Post the patch to the upstream mailing list (recommended):

    • Submit to devicetree@vger.kernel.org and linux-arm-msm@vger.kernel.org
    • Once posted, change the prefix to FROMLIST: and add the lore link:
      git rebase -i <base_sha>   # mark commit as 'edit'
      git commit --amend -m "FROMLIST: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings"
      # Add "Link: https://lore.kernel.org/..." to commit body
      git rebase --continue
  2. Use QCLINUX: for vendor-only changes (if not suitable for upstream):

    • Change prefix to QCLINUX: to indicate vendor-specific work
    • Note: This will still fail check-patch-compliance (same limitation), but correctly documents the patch origin

Reproduce locally:

cd kernel-checkers
./check-patch-compliance.sh

❌ tag-check

Root cause: Target branch tech/all/dt/qcs8300 is not qcom-next or qcom-next-staging, so every commit must start with a valid prefix. PENDING: is not in the required prefix list.

Failure details:

Commit 5f38fb0faf29 ("PENDING: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings")
Subject line does not start with a required prefix.

Required prefixes for non-qcom-next branches:

  • FROMLIST: - Posted to mailing list (lore.kernel.org)
  • FROMGIT: - Taken from a maintainer git tree
  • UPSTREAM: - Merged into Linus's mainline tree
  • BACKPORT: - Upstream patch backported with modifications
  • QCLINUX: - Vendor-only change with no upstream equivalent
  • WORKAROUND: - Temporary fix not suitable for upstream

Fix:
Choose the appropriate prefix based on the patch status:

git rebase -i <base_sha>   # mark commit as 'edit'

# If posting upstream:
git commit --amend -m "FROMLIST: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings"

# OR if vendor-only:
git commit --amend -m "QCLINUX: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings"

git rebase --continue

Note: PENDING: is used internally during development but is not a valid prefix for merging into topic branches other than qcom-next/qcom-next-staging.


Verdict

2 blockers must be fixed before merge:

  1. Replace PENDING: prefix with FROMLIST: (if posting upstream) or QCLINUX: (if vendor-only)
  2. If using FROMLIST:, add Link: <lore-url> to the commit body after posting to the mailing list

Recommendation: Post this devicetree change upstream to devicetree@vger.kernel.org and linux-arm-msm@vger.kernel.org, then update the commit with FROMLIST: prefix and the lore link. This aligns with kernel development best practices and satisfies both checker requirements.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PENDING: arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings

why pending ? pls submit upstream.

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