Skip to content

dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra - #838

Open
Vishnu Santhosh (quic-vishsant) wants to merge 13 commits into
qualcomm-linux:qcom-6.18.yfrom
quic-vishsant:for-shikra-bam-xpu-violation-2-0
Open

dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra#838
Vishnu Santhosh (quic-vishsant) wants to merge 13 commits into
qualcomm-linux:qcom-6.18.yfrom
quic-vishsant:for-shikra-bam-xpu-violation-2-0

Conversation

@quic-vishsant

@quic-vishsantVishnu Santhosh (quic-vishsant) commented Jul 17, 2026

Copy link
Copy Markdown

On Qualcomm Shikra SoC the mDSP (VMID 43 / QCOM_SCM_VMID_NAV) is the AXI
master for both BAM-DMUX RX data buffers and BAM descriptor FIFOs. The
XPU enforces per-region access control; without an SCM assignment
granting VMID 43 access, the first DMA transfer on either path triggers
an XPU violation, crashing the modem on boot.

Two independent issues, each with a binding + driver patch:

  1. BAM-DMUX RX buffers: each individually DMA-mapped RX buffer consumes
    one XPU resource group. With ~16 RGs available, 32 per-buffer
    dma_map_single() calls exhaust the table and the first inbound
    transfer faults. Fixed by adding a qcom,shikra-bam-dmux compatible
    and allocating all RX buffers as a single contiguous coherent block,
    SCM-assigned once to VMID 43 at probe (net: wwan: qcom_bam_dmux).

  2. BAM descriptor FIFOs: the remote processor reads descriptor FIFOs as
    an AXI master; without an explicit SCM grant the first enqueue
    faults. Fixed by adding an optional qcom,vmid property and
    SCM-assigning each channel's FIFO at allocation time when set
    (dmaengine: qcom: bam_dma).

Included as prerequisites (BACKPORT:), 4 small upstream dmaengine/
scatterlist commits this branch was missing that the bam_dma fix
depends on structurally: include ordering, the lock-guards conversion,
and the sg_nents_for_dma() helper introduction + its use in bam_dma.

All 5 XPU-violation patches are FROMLIST (posted upstream 2026-07-14,
not yet merged); the 4 BACKPORT patches are already merged in
torvalds/linux and are backported here unmodified.

CRs-Fixed: 4609260

@qlijarvis

Copy link
Copy Markdown

PR #838 — validate-patch

PR:#838

VerdictIssuesDetailed Report
⚠️0Full report

Final Summary

  1. Lore link present: Yes — 5 FROMLIST commits have lore.kernel.org links; 4 BACKPORT commits have patch.msgid.link links (not fetched)
  2. Lore link matches PR commits: Yes (FROMLIST 5-9 verified faithful); BACKPORT 1-4 not verified due to fetch limitation
  3. Upstream patch status: BACKPORT 1-4: not checked (assumed merged); FROMLIST 5-9: ⏳ Decision Pending — posted July 14, 2026, under active review, no acceptance/rejection decision yet
  4. PR present in qcom-next/topics: Yes - all 9 commit(s) are present in qcom-next or topics
Verdict: ⚠️ — click to expand

🔍 Patch Validation Report

PR:#838 - BAM-DMUX and BAM-DMA VMID extension support for Shikra
Commits: 9 commits (4 BACKPORT, 5 FROMLIST)
Verdict:⚠️ PARTIAL


Summary by Commit

#PrefixSubjectLore LinkAuthorshipDiff MatchUpstream Statusqcom-next/topics
1/9BACKPORTdmaengine: qcom: bam_dma: order includespatch.msgid.link (not verified)✅ Bartosz Golaszewski⏭️ Not verified⏭️ Not checked✅ Present
2/9BACKPORTdmaengine: qcom: bam_dma: use lock guardspatch.msgid.link (not verified)✅ Bartosz Golaszewski⏭️ Not verified⏭️ Not checked✅ Present
3/9BACKPORTscatterlist: introduce sg_nents_for_dma()patch.msgid.link (not verified)✅ Andy Shevchenko⏭️ Not verified⏭️ Not checked✅ Present
4/9BACKPORTdmaengine: qcom: bam_dma: use sg_nents_for_dma()patch.msgid.link (not verified)✅ Andy Shevchenko⏭️ Not verified⏭️ Not checked✅ Present
5/9FROMLISTdt-bindings: net: qcom,bam-dmux: Add qcom,shikra-bam-dmux✅ Verified✅ Vishnu Santhosh✅ Faithful⏳ Under review✅ Present (topics)
6/9FROMLISTnet: wwan: qcom_bam_dmux: Alloc RX buffers as single coherent block✅ Verified✅ Vishnu Santhosh✅ Faithful⏳ Under review✅ Present (topics)
7/9FROMLISTdt-bindings: dma: qcom,bam-dma: Add optional qcom,vmid✅ Verified✅ Vishnu Santhosh✅ Faithful⏳ Under review✅ Present (topics)
8/9FROMLISTdmaengine: qcom: bam_dma: SCM-assign descriptor FIFOs✅ Verified✅ Vishnu Santhosh✅ Faithful⏳ Under review✅ Present (topics)
9/9FROMLISTarm64: dts: qcom: shikra: Add qcom,vmid to bam-dmux✅ Verified✅ Vishnu Santhosh✅ Faithful⏳ Under review✅ Present (topics)

Commit Message Validation

BACKPORT commits (1-4):

  • ✅ Subject lines match upstream pattern
  • ✅ Original authorship preserved in From: field
  • Link: tags present (using patch.msgid.link redirect service)
  • ✅ Original Signed-off-by: chains preserved
  • ✅ Submitter Signed-off-by: added (Vishnu Santhosh)
  • ⚠️Limitation: patch.msgid.link URLs were not fetched; lore verification skipped for these commits

FROMLIST commits (5-9):

  • ✅ Subject lines match lore exactly
  • ✅ Commit message body preserves full rationale from lore
  • Link: tags present with correct lore.kernel.org message-IDs
  • Co-developed-by: + Signed-off-by: pairs correct (Deepak Kumar Singh)
  • ✅ Author Signed-off-by: present (Vishnu Santhosh)
  • ✅ Authorship correct: From: matches lore author for all FROMLIST commits

Diff Comparison

BACKPORT commits (1-4):

  • ⏭️ Not verified against lore (patch.msgid.link URLs not fetched)
  • ✅ Present in qcom-next with exact patch-id match per integration_presence_report.md

FROMLIST commits (5-9):

FileStatusNotes
Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml✅ IdenticalCommit 5: adds qcom,shikra-bam-dmux compatible
drivers/net/wwan/Kconfig✅ IdenticalCommit 6: adds select QCOM_SCM
drivers/net/wwan/qcom_bam_dmux.c✅ IdenticalCommit 6: coherent RX buffer allocation logic
Documentation/devicetree/bindings/dma/qcom,bam-dma.yaml✅ IdenticalCommit 7: adds qcom,vmid property + qcom,shikra-bam-dma compatible
drivers/dma/qcom/bam_dma.c✅ IdenticalCommit 8: SCM-assign descriptor FIFOs
arch/arm64/boot/dts/qcom/shikra.dtsi✅ IdenticalCommit 9: adds qcom,vmid = <43> to bam-dmux node

All FROMLIST diffs are faithful to lore source. No extra hunks, no missing hunks, no semantic changes.


Upstream Patch Status

BACKPORT commits (1-4):

  • ⏭️ Not checked (assumed merged to mainline based on BACKPORT prefix; verification skipped due to patch.msgid.link limitation)

FROMLIST commits (5-9):

  • Status:Decision Pending — patches posted July 14, 2026; under active review as of July 17, 2026 (3 days old)
  • Evidence:
    • Stephan Gerhold (Linaro, Qualcomm platform maintainer) provided constructive feedback on July 14, 2026
    • Sashiko AI bot flagged 3 potential issues (Critical: TOCTOU vulnerability; High: dma_addr_t vs phys_addr_t mismatch; Low: COMPILE_TEST dependency warning)
    • No maintainer Acked-by:, Reviewed-by:, applied, or NAK signals yet
    • Thread is recent and active; no stale/superseded indicators
  • Recommendation: Patches are under review; expect v2 revision addressing Stephan's feedback and Sashiko findings

Integration Presence (qcom-next / topics)

Per integration_presence_report.md:

  • Overall status: ✅ PASS
  • Present commits: 9/9
  • Details:
    • Commits 1-4 (BACKPORT): present in qcom-next with exact patch-id match
    • Commits 5-9 (FROMLIST): present in kernel-topics with exact patch-id match (commits 5, 6, 7) or full tree-content match (commits 8, 9)
  • Final summary: All 9 commits are present in qcom-next or topics

Issues Found

None for commit message or diff correctness.

Upstream review feedback (informational only):

  1. Stephan Gerhold suggested using an optional qcom,vmid property for bam-dmux (similar to bam-dma) instead of a SoC-specific compatible, as the XPU configuration is firmware-driven, not hardware-different
  2. Sashiko AI flagged potential TOCTOU vulnerability in coherent RX buffer handling (reading validated header fields directly from shared memory)
  3. Sashiko AI flagged dma_addr_t vs phys_addr_t type mismatch in qcom_scm_assign_mem() call when IOMMU is active

Verdict

⚠️PARTIAL — Merge with awareness of upstream review status

Rationale:

  • ✅ All FROMLIST commits are faithful to lore source (commit message + diff)
  • ✅ All commits are present in qcom-next or topics
  • ✅ Authorship and sign-off chains are correct
  • ⚠️ BACKPORT commits (1-4) could not be verified against lore due to patch.msgid.link limitation, but are present in qcom-next
  • ⏳ FROMLIST commits (5-9) are under active upstream review; no acceptance decision yet (3 days old)
  • ⏳ Expect v2 revision upstream addressing Stephan Gerhold's feedback and Sashiko findings

Recommendation:

  • Safe to merge into qcom-next-staging or internal integration branch
  • Monitor upstream thread for v2 revision; may require follow-up PR to sync changes
  • If upstream acceptance is blocked or design changes significantly, consider rebasing or reverting FROMLIST commits

Final Summary

  1. Lore link present: Yes — 5 FROMLIST commits have lore.kernel.org links; 4 BACKPORT commits have patch.msgid.link links (not fetched)
  2. Lore link matches PR commits: Yes (FROMLIST 5-9 verified faithful); BACKPORT 1-4 not verified due to fetch limitation
  3. Upstream patch status: BACKPORT 1-4: not checked (assumed merged); FROMLIST 5-9: ⏳ Decision Pending — posted July 14, 2026, under active review, no acceptance/rejection decision yet
  4. PR present in qcom-next/topics: Yes — all 9 commits present (BACKPORT 1-4 in qcom-next; FROMLIST 5-9 in 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

CommitSubjectqcom-nexttopicsFinal
1/9[PATCH 1/9] BACKPORT: dmaengine: qcom: bam_dma: order includespresent - exact patch-id match at 892f2bbskipped - not checked because qcom-next already contains the changepresent
2/9[PATCH 2/9] BACKPORT: dmaengine: qcom: bam_dma: use lock guardspresent - exact patch-id match at 20f5818skipped - not checked because qcom-next already contains the changepresent
3/9[PATCH 3/9] BACKPORT: scatterlist: introduce sg_nents_for_dma()present - exact patch-id match at 80c70bfskipped - not checked because qcom-next already contains the changepresent
4/9[PATCH 4/9] BACKPORT: dmaengine: qcom: bam_dma: usepresent - exact patch-id match at 107fdf0skipped - not checked because qcom-next already contains the changepresent
5/9[PATCH 5/9] FROMLIST: dt-bindings: net: qcom,bam-dmux: Addmissing - no subject, patch-id, or full tree-content match foundpresent - exact patch-id match at d50930bpresent
6/9[PATCH 6/9] FROMLIST: net: wwan: qcom_bam_dmux: Alloc RX buffers as apartial - subject or partial tree evidence found, but full change was not verifiedpresent - exact patch-id match at 5f0bfd2present
7/9[PATCH 7/9] FROMLIST: dt-bindings: dma: qcom,bam-dma: Add optionalpartial - subject or partial tree evidence found, but full change was not verifiedpresent - exact patch-id match at 74de4eapresent
8/9[PATCH 8/9] FROMLIST: dmaengine: qcom: bam_dma: SCM-assign descriptorpartial - subject or partial tree evidence found, but full change was not verifiedpresent - all checked added lines are presentpresent
9/9[PATCH 9/9] FROMLIST: arm64: dts: qcom: shikra: Add qcom,vmid tomissing - no subject, patch-id, or full tree-content match foundpresent - all checked added lines are presentpresent

Final Status

overall_status: PASS
present_commits: 9/9
partial_commits: 0/9
missing_commits: 0/9
topics_checked_for_commits: 5/9
final_summary: PR present in qcom-next/topics: Yes - all 9 commit(s) are present in qcom-next or topics

@qlijarvis

Copy link
Copy Markdown

PR #838 — checker-log-analyzer

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

CheckerResultSummary
CheckerResultSummary
checkpatchAll 9 commits passed
dt-binding-checkBoth bindings validated successfully
dtb-checkNo new DTB validation errors
sparse-checkNo sparse warnings
check-uapi-headersNo UAPI changes detected
check-patch-compliance3 commits have content mismatch with upstream
tag-checkAll commits have valid prefixes (BACKPORT:/FROMLIST:)

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR:#838 - BAM DMA and BAM DMUX VMID support
Source:https://github.com/qualcomm-linux/kernel-config/actions/runs/29573042010

CheckerResultSummary
checkpatchAll 9 commits passed
dt-binding-checkBoth bindings validated successfully
dtb-checkNo new DTB validation errors
sparse-checkNo sparse warnings
check-uapi-headersNo UAPI changes detected
check-patch-compliance3 commits have content mismatch with upstream
tag-checkAll commits have valid prefixes (BACKPORT:/FROMLIST:)

❌ check-patch-compliance

Root cause: Three BACKPORT commits have differences from their upstream Link references, indicating intentional modifications during backport.

Failure details:

Checking commit: BACKPORT: dmaengine: qcom: bam_dma: order includes alphabetically
Change is different from the one mentioned in Link
Checking commit: BACKPORT: dmaengine: qcom: bam_dma: use lock guards
Change is different from the one mentioned in Link
Checking commit: FROMLIST: arm64: dts: qcom: shikra: Add qcom,vmid to BAM-DMA node
Change is different from the one mentioned in Link

Analysis:

  1. Commits 1 & 2 (fb6d259, 42d2e76):

  2. Commit 9 (6754ebc):

Fix:

For commit 9 (6754ebc):

git rebase -i a19888edbd0a # mark commit 6754ebc1a45a as 'edit'
git commit --amend -m "BACKPORT: arm64: dts: qcom: shikra: Add qcom,vmid to BAM-DMA node[rest of commit message unchanged]"
git rebase --continue

Verification:

# Fetch upstream patches and compare
b4 am --single-message -C -l -3 https://patch.msgid.link/20251106-qcom-bam-dma-refactor-v1-1-0e2baaf3d81a@linaro.org -o /tmp/commit1
b4 am --single-message -C -l -3 https://patch.msgid.link/20251106-qcom-bam-dma-refactor-v1-2-0e2baaf3d81a@linaro.org -o /tmp/commit2
b4 am --single-message -C -l -3 https://lore.kernel.org/r/20260714-b4-qcom-shikra-dts-bam-dmux-vmid-ext-v1-1-5b19da8d7735@oss.qualcomm.com -o /tmp/commit9
# Compare diff hunks
git format-patch -1 fb6d25991dcb --stdout | diff - /tmp/commit1/*.mbx
git format-patch -1 42d2e766c7c6 --stdout | diff - /tmp/commit2/*.mbx
git format-patch -1 6754ebc1a45a --stdout | diff - /tmp/commit9/*.mbx

Reproduce locally:

cd kernel
./scripts/check-patch-compliance.sh --base a19888edbd0a --head 6754ebc1a45a

Verdict

1 blocker to fix before merge:

  • Commit 9 (6754ebc) must change prefix from FROMLIST: to BACKPORT: if it contains modifications from the upstream patch.

Note: Commits 1 & 2 correctly use BACKPORT: prefix and are acceptable as-is. The checker's "Change is different" message is expected for BACKPORT commits and does not require action.

@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: CR Not Eligible for Merge

CR 4609260 is not eligible for merge.

The parent software image for kernel.qli.2.0 is not development complete.

Entity:kernel.qli.2.0
CR:4609260
Reason: CR_CANNOT_MERGE

Please ensure the CR passes both CCT (ComponentChangeTasks) and ICT (Integration Change Tasks) validations.

1 similar comment
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: CR Not Eligible for Merge

CR 4609260 is not eligible for merge.

The parent software image for kernel.qli.2.0 is not development complete.

Entity:kernel.qli.2.0
CR:4609260
Reason: CR_CANNOT_MERGE

Please ensure the CR passes both CCT (ComponentChangeTasks) and ICT (Integration Change Tasks) validations.

@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: CR Not Eligible for Merge

CR 4609260 is not eligible for merge.

The parent software image for kernel.qli.2.0 is not development complete.

Entity:kernel.qli.2.0
CR:4609260
Reason: CR_CANNOT_MERGE

Please ensure the CR passes both CCT (ComponentChangeTasks) and ICT (Integration Change Tasks) validations.

@qlijarvis

Copy link
Copy Markdown

PR #838 — validate-patch

PR:#838

VerdictIssuesDetailed Report
⚠️0Full report

Final Summary

  1. Lore link present: Yes for 11/12 commits (commit 10 is a revert, no lore link expected)
  2. Lore link matches PR commits: Yes - all commits with lore links have faithful diffs; FROMLIST authorship rules correctly applied
  3. Upstream patch status:
    • Commits 1-4: ⏳ Decision Pending (Reviewed-by present, awaiting merge)
    • Commit 9: ✅ ACKed (maintainer confirmed "Applied, thanks!")
    • Commits 5-8, 11-12: ⏳ Decision Pending (no review/merge signals yet)
  4. PR present in qcom-next/topics: Fail - 1/12 commit(s) are missing from both qcom-next and topics
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR:#838 - BAM-DMUX support for Shikra (12 commits)
Verdict:⚠️ PARTIAL


Summary by Commit

Commit 1/12: UPSTREAM: dmaengine: qcom: bam_dma: order includes alphabetically

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20251106-qcom-bam-dma-refactor-v1-1-0e2baaf3d81a@linaro.org
Subject matches upstreamPrefix added: UPSTREAM:
Body preserves rationaleIdentical
Authorship preservedFrom: Bartosz Golaszewski bartosz.golaszewski@linaro.org matches lore
Reviewed-by tags⚠️PR has only Dmitry Baryshkov; lore thread also has Bjorn Andersson
Diff matches loreIdentical code changes (context line numbers differ due to tree state)
Upstream statusDecision Pending - Reviewed-by present, no merge confirmation yet
qcom-next/topics presencePresent in qcom-next as 892f2bb

Verdict: ✅ PASS


Commit 2/12: UPSTREAM: dmaengine: qcom: bam_dma: use lock guards

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20251106-qcom-bam-dma-refactor-v1-2-0e2baaf3d81a@linaro.org
Subject matches upstreamPrefix added: UPSTREAM:
Body preserves rationaleIdentical
Authorship preservedFrom: Bartosz Golaszewski bartosz.golaszewski@linaro.org matches lore
Reviewed-by tagsPR missing Reviewed-by tags present in lore (Dmitry Baryshkov, Bjorn Andersson)
Diff matches loreIdentical code changes
Upstream statusDecision Pending - Reviewed-by present, no merge confirmation yet
qcom-next/topics presencePresent in qcom-next as 20f5818

Verdict:⚠️ PARTIAL - Missing Reviewed-by tags from lore thread


Commit 3/12: UPSTREAM: scatterlist: introduce sg_nents_for_dma()

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20260108105619.3513561-2-andriy.shevchenko@linux.intel.com
Subject matches upstreamPrefix added: UPSTREAM:
Body preserves rationaleIdentical
Authorship preservedFrom: Andy Shevchenko andriy.shevchenko@linux.intel.com matches lore
Reviewed-by tagsPR missing Reviewed-by: Bjorn Andersson present in lore
Diff matches loreIdentical code changes
Upstream statusDecision Pending - Reviewed-by present, no merge confirmation yet
qcom-next/topics presencePresent in qcom-next as 80c70bf

Verdict:⚠️ PARTIAL - Missing Reviewed-by tag from lore thread


Commit 4/12: UPSTREAM: dmaengine: qcom: bam_dma: use sg_nents_for_dma()

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20260108105619.3513561-11-andriy.shevchenko@linux.intel.com
Subject matches upstreamPrefix added: UPSTREAM: (subject truncated in patch header)
Body preserves rationaleIdentical
Authorship preservedFrom: Andy Shevchenko andriy.shevchenko@linux.intel.com matches lore
Reviewed-by tagsPR missing Reviewed-by: Bjorn Andersson present in lore
Diff matches loreIdentical code changes
Upstream statusDecision Pending - Reviewed-by present, no merge confirmation yet
qcom-next/topics presencePresent in qcom-next as 107fdf0

Verdict:⚠️ PARTIAL - Missing Reviewed-by tag from lore thread


Commit 5/12: FROMLIST: dt-bindings: net: qcom,bam-dmux: Add qcom,vmid property

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20260714-qcom-bam-dmux-vmid-ext-v1-1-3f29da7cca76@oss.qualcomm.com
Subject matches upstreamPrefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationaleIdentical
Authorship preservedFROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches loreIdentical code changes
Upstream statusDecision Pending - no merge or review signals in lore thread
qcom-next/topics presencePresent in topics as d50930b

Verdict: ✅ PASS


Commit 6/12: FROMLIST: net: wwan: qcom_bam_dmux: Alloc RX buffers as DMA-able

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20260714-qcom-bam-dmux-vmid-ext-v1-2-3f29da7cca76@oss.qualcomm.com
Subject matches upstreamPrefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationaleIdentical
Authorship preservedFROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches loreIdentical code changes
Upstream statusDecision Pending - no merge or review signals in lore thread
qcom-next/topics presencePresent in topics as 5f0bfd2

Verdict: ✅ PASS


Commit 7/12: FROMLIST: dt-bindings: dma: qcom,bam-dma: Add optional qcom,vmid

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20260714-qcom-bam-dma-vmid-ext-v1-1-cef87c57b7dc@oss.qualcomm.com
Subject matches upstreamPrefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationaleIdentical
Authorship preservedFROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches loreIdentical code changes
Upstream statusDecision Pending - no merge or review signals in lore thread
qcom-next/topics presencePresent in topics as 74de4ea

Verdict: ✅ PASS


Commit 8/12: FROMLIST: dmaengine: qcom: bam_dma: SCM-assign DMA buffers

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20260714-qcom-bam-dma-vmid-ext-v1-2-cef87c57b7dc@oss.qualcomm.com
Subject matches upstreamPrefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationaleIdentical
Authorship preservedFROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches loreIdentical code changes
Upstream statusDecision Pending - no merge or review signals in lore thread
qcom-next/topics presencePresent in topics (all added lines verified)

Verdict: ✅ PASS


Commit 9/12: FROMLIST: remoteproc: qcom_q6v5_pas: Create platform device for BAM-DMUX

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20260711-qcom-q6v5-pas-bam-dmux-v1-1-1e9231143b79@oss.qualcomm.com
Subject matches upstreamPrefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationaleIdentical
Authorship preservedFROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches loreIdentical code changes
Upstream statusACKed - "Applied, thanks!" from maintainer in lore thread
qcom-next/topics presencePresent in topics (all added lines verified)

Verdict: ✅ PASS


Commit 10/12: Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support"

CheckStatusNote
Lore link presentN/ARevert commits do not require lore links
Subject matches patternStandard revert format
Body explains rationaleClear explanation: v2 moves node placement, reverting v1 to apply v2
Reverts commitReverts a4a9273
Diff correctnessCleanly removes the v1 BAM-DMUX additions
qcom-next/topics presenceMISSING from both qcom-next and topics

Verdict: ❌ FAIL - Not present in qcom-next or topics (integration requirement not met)


Commit 11/12: FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20260711-qcom-shikra-dts-bam-dmux-v2-1-d5b33ee32138@oss.qualcomm.com
Subject matches upstreamPrefix added: FROMLIST:
Body preserves rationaleIdentical (v2 rationale about node placement)
Authorship preservedFROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches loreIdentical code changes (v2 placement under remoteproc)
Upstream statusDecision Pending - no merge or review signals in lore thread
qcom-next/topics presence⚠️PARTIAL - subject/partial tree evidence found, full change not verified

Verdict:⚠️ PARTIAL - Integration presence is partial (not fully verified in qcom-next/topics)


Commit 12/12: FROMLIST: arm64: dts: qcom: shikra: Add qcom,vmid to BAM-DMUX

CheckStatusNote
Lore link presenthttps://lore.kernel.org/r/20260714-b4-qcom-shikra-dts-bam-dmux-vmid-ext-v1-1-5b19da8d7735@oss.qualcomm.com
Subject matches upstreamPrefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationaleIdentical
Authorship preservedFROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches loreIdentical code changes
Upstream statusDecision Pending - no merge or review signals in lore thread
qcom-next/topics presencePresent in topics (all added lines verified)

Verdict: ✅ PASS


Issues Found

  1. Missing Reviewed-by tags (Commits 2, 3, 4): The lore threads for these UPSTREAM commits contain Reviewed-by: tags from maintainers (Dmitry Baryshkov, Bjorn Andersson) that are missing from the PR commits. These tags should be preserved when cherry-picking upstream patches.

  2. Commit 10 missing from integration (FAIL): The revert commit (10/12) is not present in qcom-next or topics. This is a validation failure per the integration presence requirement. The commit reverts a previous v1 patch to make way for v2, but the revert itself has not been integrated.

  3. Commit 11 partial integration (WARNING): The v2 BAM-DMUX DTS patch (11/12) shows only partial evidence in qcom-next/topics. The integration checker found subject/partial tree matches but could not verify the full change.


Recommendation

Do not merge as-is. Address the following before merging:

  1. Add missing Reviewed-by tags to commits 2, 3, and 4 from their respective lore threads.
  2. Investigate commit 10 (revert) - it is missing from both qcom-next and topics. Confirm whether:
    • The revert is needed in this PR, or
    • The v1 commit being reverted was never in qcom-next (making the revert unnecessary), or
    • The revert needs to be pushed to qcom-next/topics first.
  3. Verify commit 11 integration - the partial match suggests the change may be present but with differences. Confirm the full change is in topics or qcom-next.

Final Summary

  1. Lore link present: Yes for 11/12 commits (commit 10 is a revert, no lore link expected)
  2. Lore link matches PR commits: Yes - all commits with lore links have faithful diffs; FROMLIST authorship rules correctly applied
  3. Upstream patch status:
    • Commits 1-4: ⏳ Decision Pending (Reviewed-by present, awaiting merge)
    • Commit 9: ✅ ACKed (maintainer confirmed "Applied, thanks!")
    • Commits 5-8, 11-12: ⏳ Decision Pending (no review/merge signals yet)
  4. PR present in qcom-next/topics:Fail - 1/12 commit (revert) is missing from both qcom-next and topics; 1/12 commit has only partial verification

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

CommitSubjectqcom-nexttopicsFinal
1/12[PATCH 01/12] UPSTREAM: dmaengine: qcom: bam_dma: order includespresent - exact patch-id match at 892f2bbskipped - not checked because qcom-next already contains the changepresent
2/12[PATCH 02/12] UPSTREAM: dmaengine: qcom: bam_dma: use lock guardspresent - exact patch-id match at 20f5818skipped - not checked because qcom-next already contains the changepresent
3/12[PATCH 03/12] UPSTREAM: scatterlist: introduce sg_nents_for_dma()present - exact patch-id match at 80c70bfskipped - not checked because qcom-next already contains the changepresent
4/12[PATCH 04/12] UPSTREAM: dmaengine: qcom: bam_dma: usepresent - exact patch-id match at 107fdf0skipped - not checked because qcom-next already contains the changepresent
5/12[PATCH 05/12] FROMLIST: dt-bindings: net: qcom,bam-dmux: Addmissing - no subject, patch-id, or full tree-content match foundpresent - exact patch-id match at d50930bpresent
6/12[PATCH 06/12] FROMLIST: net: wwan: qcom_bam_dmux: Alloc RX buffers aspartial - subject or partial tree evidence found, but full change was not verifiedpresent - exact patch-id match at 5f0bfd2present
7/12[PATCH 07/12] FROMLIST: dt-bindings: dma: qcom,bam-dma: Add optionalpartial - subject or partial tree evidence found, but full change was not verifiedpresent - exact patch-id match at 74de4eapresent
8/12[PATCH 08/12] FROMLIST: dmaengine: qcom: bam_dma: SCM-assignpartial - subject or partial tree evidence found, but full change was not verifiedpresent - all checked added lines are presentpresent
9/12[PATCH 09/12] FROMLIST: remoteproc: qcom_q6v5_pas: Create platformmissing - no subject, patch-id, or full tree-content match foundpresent - all checked added lines are presentpresent
10/12[PATCH 10/12] Revert "FROMLIST: arm64: dts: qcom: shikra: Addmissing - no subject, patch-id, or full tree-content match foundmissing - no subject, patch-id, or full tree-content match foundmissing
11/12[PATCH 11/12] FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUXpartial - subject or partial tree evidence found, but full change was not verifiedpartial - subject or partial tree evidence found, but full change was not verifiedpartial
12/12[PATCH 12/12] FROMLIST: arm64: dts: qcom: shikra: Add qcom,vmid tomissing - no subject, patch-id, or full tree-content match foundpresent - all checked added lines are presentpresent

Final Status

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

@qlijarvis

Copy link
Copy Markdown

PR #838 — checker-log-analyzer

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

CheckerResultSummary
CheckerResultSummary
checkpatchAll commits pass style checks
dt-binding-checkBinding schemas valid
dtb-checkbam-dmux child node not allowed in remoteproc binding schema
sparse-checkNo static analysis warnings
check-uapi-headersNo UAPI changes
check-patch-compliance1 prefix failure, 4 content-mismatch warnings
tag-check1 commit missing required prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR:#838 - BAM-DMUX support for Shikra
Source:https://github.com/qualcomm-linux/kernel-config/actions/runs/29844137764
Target branch:qcom-6.18.y

CheckerResultSummary
checkpatchAll commits pass style checks
dt-binding-checkBinding schemas valid
dtb-checkbam-dmux child node not allowed in remoteproc binding schema
sparse-checkNo static analysis warnings
check-uapi-headersNo UAPI changes
check-patch-compliance1 prefix failure, 4 content-mismatch warnings
tag-check1 commit missing required prefix

❌ dtb-check

Root cause: The qcom,shikra-pas.yaml binding schema does not allow bam-dmux as a child node under glink-edge.

Failure details:

remoteproc@6080000 (qcom,shikra-mpss-pas): glink-edge: 'bam-dmux' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,shikra-pas.yaml#
remoteproc@6080000 (qcom,shikra-mpss-pas): glink-edge: Unevaluated properties are not allowed ('bam-dmux' was unexpected)
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,shikra-pas.yaml#
remoteproc@6080000 (qcom,shikra-mpss-pas): Unevaluated properties are not allowed ('glink-edge', 'interconnects' were unexpected)
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,shikra-pas.yaml#
video-codec@5a00000 (qcom,shikra-iris): iommus: [[38, 1920, 32]] is too short

Affects all shikra DTBs: shikra-cqm-evk, shikra-cqs-evk, shikra-iqs-evk (and their camera variants).

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

  1. Allow glink-edge as a property under the remoteproc node
  2. Add bam-dmux to the allowed child nodes under glink-edge (via patternProperties or explicit declaration)
  3. Fix the video-codeciommus property cell count issue (separate from BAM-DMUX)

Reproduce locally:

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

❌ check-patch-compliance

Root cause: Commit #10 (Revert) is missing a required prefix before "Revert", and 4 commits have content differences from their upstream lore links.

Failure details:

1. Prefix failure (commit 6ba17b8):

Checking commit: Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support"
Commit summary does not start with a required prefix

2. Content-mismatch warnings (4 commits):

Checking commit: UPSTREAM: dmaengine: qcom: bam_dma: order includes alphabetically
Change is different from the one mentioned in Link
Checking commit: UPSTREAM: dmaengine: qcom: bam_dma: use lock guards
Change is different from the one mentioned in Link
Checking commit: FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support
Change is different from the one mentioned in Link
Checking commit: FROMLIST: arm64: dts: qcom: shikra: Add qcom,vmid to BAM-DMA node
Change is different from the one mentioned in Link

Fix:

For the prefix failure:

git rebase -i <base_sha># mark commit 6ba17b8e660a as 'edit'
git commit --amend -m "FROMLIST: Revert \"FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support\""
git rebase --continue

For the content-mismatch warnings:
These are likely context-only differences or legitimate adaptations for the vendor tree. Verify each one:

# For each commit with "Change is different":
b4 am --single-message -C -l -3 <link-from-commit-body> -o /tmp/upstream
git format-patch -1 <commit-sha> --stdout > /tmp/local.patch
# Compare the actual code changes (ignore context):
diff <(grep -E '^[+-][^+-]' /tmp/local.patch | grep -v '^---\|^+++') \
<(grep -E '^[+-][^+-]' /tmp/upstream/*.mbx | grep -v '^---\|^+++')

If differences are legitimate adaptations (e.g., different base kernel version, vendor-specific context), document them in the commit message. If differences are unintended, align with upstream.

Reproduce locally:

cd /path/to/kernel
bash ../kernel-checkers/check-patch-compliance.sh --kernel-src . --base <base_sha> --head <head_sha>

❌ tag-check

Root cause: Commit #10 (Revert) does not start with a required prefix tag.

Failure details:

Target branch qcom-6.18.y requires all commits to have a subject-line prefix (FROMLIST:, FROMGIT:, UPSTREAM:, BACKPORT:, QCLINUX:, PENDING:, WORKAROUND:).

Commit 6ba17b8e660a has subject:

Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support"

This is missing a prefix before Revert.

Fix:

git rebase -i <base_sha># mark commit 6ba17b8e660a as 'edit'
git commit --amend -m "FROMLIST: Revert \"FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support\""
git rebase --continue

Choose FROMLIST: if the revert itself was posted upstream, or UPSTREAM: if the revert is already merged upstream.


Verdict

3 blockers must be fixed before merge:

  1. dtb-check: Update qcom,shikra-pas.yaml binding to allow bam-dmux child node under glink-edge
  2. check-patch-compliance: Add FROMLIST: prefix to the Revert commit subject
  3. tag-check: Same as Adding Email Checker  #2 (both require the same fix)

The 4 content-mismatch warnings should be investigated but may be acceptable if they represent legitimate vendor-tree adaptations. Verify with b4 am and document any intentional differences in commit messages.

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Casehamoa-iot-evklemans-evkmonaco-evkqcs615-rideqcs6490-rb3gen2qcs8300-rideqcs9100-ride-r3
BT_FW_KMD_Service✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
BT_ON_OFF✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
BT_SCAN✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
CPUFreq_Validation✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
CPU_affinity✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
DSP_AudioPD✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
Ethernet⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip
Freq_Scaling✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail✅ Pass✅ Pass
GIC✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail✅ Pass✅ Pass
IPA✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
Interrupts✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
OpenCV✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
PCIe✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
Probe_Failure_Check❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail
RMNET✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
UFS_Validation✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
USBHost✅ Pass❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail
WiFi_Firmware_Driver❌ Fail✅ Pass❌ Fail✅ Pass✅ Pass✅ Pass✅ Pass
WiFi_OnOff❌ Fail✅ Pass❌ Fail✅ Pass✅ Pass✅ Pass✅ Pass
adsp_remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
cdsp_remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
gpdsp_remoteproc⚠️ skip✅ Pass✅ Pass⚠️ skip⚠️ skip✅ Pass✅ Pass
hotplug✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
irq✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
kaslr✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
pinctrl✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
qcom_hwrng✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
rngtest✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
shmbridge✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
smmu❌ Fail❌ Fail✅ Pass❌ Fail✅ Pass✅ Pass❌ Fail
watchdog✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
wpss_remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass

@qlijarvis

Copy link
Copy Markdown

PR #838 — validate-patch

PR:#838

VerdictIssuesDetailed Report
N/A0Full report

Final Summary

  1. Lore link present: Not provided in agent output
  2. Lore link matches PR commits: Not provided in agent output
  3. Upstream patch status: Not provided in agent output
  4. PR present in qcom-next/topics: Fail - 1/12 commit(s) are missing from both qcom-next and topics
Verdict: N/A — click to expand

Perfect! I've completed the comprehensive validation following the validate-patch skill workflow. The report identifies:

  1. Critical Issue: Commit 12/12 is missing the #include <dt-bindings/firmware/qcom,scm.h> header that's present in the lore patch, which will cause a build failure.

  2. Integration Issue: Commit 10/12 (Revert) is not present in qcom-next or topics, which needs verification.

  3. Positive findings:

    • All 11 non-revert commits have proper lore links
    • Authorship is correctly preserved for UPSTREAM commits
    • FROMLIST commits correctly use the submitter as author
    • All other diffs match their lore sources exactly
    • UPSTREAM commits (1-4) are already accepted/merged upstream

The validation verdict is FAIL due to the missing header include in commit 12/12.

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

CommitSubjectqcom-nexttopicsFinal
1/12[PATCH 01/12] UPSTREAM: dmaengine: qcom: bam_dma: order includespresent - exact patch-id match at 892f2bbskipped - not checked because qcom-next already contains the changepresent
2/12[PATCH 02/12] UPSTREAM: dmaengine: qcom: bam_dma: use lock guardspresent - exact patch-id match at 20f5818skipped - not checked because qcom-next already contains the changepresent
3/12[PATCH 03/12] UPSTREAM: scatterlist: introduce sg_nents_for_dma()present - exact patch-id match at 80c70bfskipped - not checked because qcom-next already contains the changepresent
4/12[PATCH 04/12] UPSTREAM: dmaengine: qcom: bam_dma: usepresent - exact patch-id match at 107fdf0skipped - not checked because qcom-next already contains the changepresent
5/12[PATCH 05/12] FROMLIST: dt-bindings: net: qcom,bam-dmux: Addmissing - no subject, patch-id, or full tree-content match foundpresent - exact patch-id match at d50930bpresent
6/12[PATCH 06/12] FROMLIST: net: wwan: qcom_bam_dmux: Alloc RX buffers aspartial - subject or partial tree evidence found, but full change was not verifiedpresent - exact patch-id match at 5f0bfd2present
7/12[PATCH 07/12] FROMLIST: dt-bindings: dma: qcom,bam-dma: Add optionalpartial - subject or partial tree evidence found, but full change was not verifiedpresent - exact patch-id match at 74de4eapresent
8/12[PATCH 08/12] FROMLIST: dmaengine: qcom: bam_dma: SCM-assignpartial - subject or partial tree evidence found, but full change was not verifiedpresent - all checked added lines are presentpresent
9/12[PATCH 09/12] FROMLIST: remoteproc: qcom_q6v5_pas: Create platformmissing - no subject, patch-id, or full tree-content match foundpresent - all checked added lines are presentpresent
10/12[PATCH 10/12] Revert "FROMLIST: arm64: dts: qcom: shikra: Addmissing - no subject, patch-id, or full tree-content match foundmissing - no subject, patch-id, or full tree-content match foundmissing
11/12[PATCH 11/12] BACKPORT: arm64: dts: qcom: shikra: Add BAM-DMUXpartial - subject or partial tree evidence found, but full change was not verifiedpartial - subject or partial tree evidence found, but full change was not verifiedpartial
12/12[PATCH 12/12] BACKPORT: arm64: dts: qcom: shikra: Add qcom,vmid tomissing - no subject, patch-id, or full tree-content match foundpresent - all checked added lines are presentpresent

Final Status

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

@qlijarvis

Copy link
Copy Markdown

PR #838 — checker-log-analyzer

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

CheckerResultSummary
CheckerResultSummary
checkpatch⚠️1 CHECK warning (style suggestion, non-blocking)
dt-binding-checkPassed
dtb-checkNew bam-dmux child node not allowed in qcom,shikra-pas binding
sparse-checkPassed
check-uapi-headersPassed
check-patch-compliance5 failures: 1 missing prefix, 4 content mismatches
tag-check1 commit missing required prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR:#838 - BAM-DMUX support for Shikra
Source:https://github.com/qualcomm-linux/kernel-config/actions/runs/30078661350
Target branch:qcom-6.18.y

CheckerResultSummary
checkpatch⚠️1 CHECK warning (style suggestion, non-blocking)
dt-binding-checkPassed
dtb-checkNew bam-dmux child node not allowed in qcom,shikra-pas binding
sparse-checkPassed
check-uapi-headersPassed
check-patch-compliance5 failures: 1 missing prefix, 4 content mismatches
tag-check1 commit missing required prefix

❌ dtb-check

Root cause: The PR adds a bam-dmux child node under glink-edge in the shikra remoteproc node, but the qcom,shikra-pas.yaml binding schema uses unevaluatedProperties: false and does not declare bam-dmux as an allowed child node pattern.

Failure details:

shikra-cqm-evk.dtb: remoteproc@6080000 (qcom,shikra-mpss-pas): glink-edge: 'bam-dmux' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,shikra-pas.yaml#
shikra-cqm-evk.dtb: remoteproc@6080000 (qcom,shikra-mpss-pas): glink-edge: Unevaluated properties are not allowed ('bam-dmux' was unexpected)
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,shikra-pas.yaml#
shikra-cqm-evk.dtb: remoteproc@6080000 (qcom,shikra-mpss-pas): Unevaluated properties are not allowed ('glink-edge', 'interconnects' were unexpected)
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,shikra-pas.yaml#

Affects all shikra board DTBs: shikra-cqm-evk, shikra-cqs-evk, shikra-iqs-evk (and their camera variants).

Fix: Update Documentation/devicetree/bindings/remoteproc/qcom,shikra-pas.yaml to allow the bam-dmux child node under glink-edge. Add a patternProperties entry:

patternProperties:
"^glink-edge":
type: objectproperties:
bam-dmux:
$ref: /schemas/net/qcom,bam-dmux.yaml#

Or if the binding already has a glink-edge definition, add bam-dmux to its allowed child nodes.

Reproduce locally:

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

❌ check-patch-compliance

Root cause: 5 commits fail compliance checks — 1 missing required prefix, 4 with content differences from their upstream Link.

Failure details:

1. Missing prefix (commit 10/12):

Checking commit: Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support"
Commit summary does not start with a required prefix

The Revert commit has no prefix before the word Revert. Valid prefixes are: FROMLIST:, FROMGIT:, UPSTREAM:, BACKPORT:.

2. Content mismatches (4 commits):

Checking commit: UPSTREAM: dmaengine: qcom: bam_dma: order includes alphabetically
Change is different from the one mentioned in Link
Checking commit: UPSTREAM: dmaengine: qcom: bam_dma: use lock guards
Change is different from the one mentioned in Link
Checking commit: BACKPORT: arm64: dts: qcom: shikra: Add BAM-DMUX support
Change is different from the one mentioned in Link
Checking commit: BACKPORT: arm64: dts: qcom: shikra: Add qcom,vmid to BAM-DMA node
Change is different from the one mentioned in Link

The checker detected differences between the PR commit content and the upstream patch referenced in the Link: trailer. This can be:

  • Context-only differences (false positive)
  • Legitimate adaptations for the vendor tree (document in commit message)
  • Missing or extra hunks (verify manually)

Fix:

For the Revert commit:

git rebase -i <base_sha># mark commit 10/12 as 'edit'
git commit --amend -m "FROMLIST: Revert \"FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support\""
git rebase --continue

For content mismatches:
Fetch each upstream patch and compare:

b4 am --single-message -C -l -3 <link> -o /tmp/out
diff <(git format-patch -1 <sha> --stdout | awk '/^diff/,/^--$/'| grep -E '^[+-][^+-]') \
<(awk '/^diff/,/^--$/' /tmp/out/*.mbx | grep -E '^[+-][^+-]')

If differences are legitimate adaptations (e.g., vendor-specific context), document them in the commit message body. If differences are unintended, rebase and fix the commit.

Reproduce locally:

cd kernel
bash ../kernel-checkers/check-patch-compliance.sh --kernel-src . --base <base_sha> --head <head_sha>

❌ tag-check

Root cause: Commit 10/12 (Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support") does not start with a required prefix.

Failure details:

The PR targets qcom-6.18.y, which is notqcom-next or qcom-next-staging. All commits merged into this branch must start with one of the following prefixes:

  • FROMLIST: — Patch posted to mailing list (lore.kernel.org)
  • FROMGIT: — Patch taken from a maintainer git tree
  • UPSTREAM: — Patch merged into Linus's mainline tree
  • BACKPORT: — Upstream patch backported with modifications
  • QCLINUX: — Vendor-only change with no upstream equivalent
  • PENDING: — Work-in-progress, not yet posted upstream
  • WORKAROUND: — Temporary fix not suitable for upstream

Commit 10/12 starts with Revert "..." with no prefix before Revert.

Fix:

git rebase -i <base_sha># mark commit 10/12 as 'edit'
git commit --amend -m "FROMLIST: Revert \"FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support\""
git rebase --continue

Choose the correct prefix based on the revert's origin:

  • If the revert itself was posted upstream → FROMLIST:
  • If the revert is in a maintainer tree → FROMGIT:
  • If the revert is merged into Linus's tree → UPSTREAM:

⚠️ checkpatch

Root cause: Commit 2/12 (UPSTREAM: dmaengine: qcom: bam_dma: use lock guards) has a style CHECK warning (non-blocking).

Failure details:

CHECK: Lines should not end with a '('
#230: FILE: drivers/dma/qcom/bam_dma.c:1013:
+ residue += le16_to_cpu(

This is a style suggestion, not an error. The line ends with an open parenthesis, which checkpatch flags as poor style.

Fix (optional):

Reformat the line to avoid ending with (:

residue+=le16_to_cpu(desc_fifo[i].data);

Or if the line is too long, break at a different point:

residue+=le16_to_cpu(desc_fifo[i].data);

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git <base>..<head>

Verdict

3 blockers must be fixed before merge:

  1. dtb-check: Update qcom,shikra-pas.yaml binding to allow bam-dmux child node under glink-edge.
  2. check-patch-compliance: Add required prefix to the Revert commit (commit 10/12).
  3. tag-check: Same as Adding Email Checker  #2 — the Revert commit needs a prefix.

4 warnings to investigate:

  • check-patch-compliance: Verify the 4 content-mismatch commits are legitimate adaptations or fix any unintended differences.

1 optional style fix:

  • checkpatch: Consider reformatting the line ending with ( in commit 2/12 (non-blocking).

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Casehamoa-iot-evklemans-evkmonaco-evkqcs615-rideqcs6490-rb3gen2qcs8300-rideqcs9100-ride-r3
BT_FW_KMD_Service✅ Pass✅ Pass✅ Pass❌ Fail✅ Pass✅ Pass✅ Pass
BT_ON_OFF✅ Pass✅ Pass✅ Pass⚠️ skip✅ Pass✅ Pass✅ Pass
BT_SCAN✅ Pass✅ Pass✅ Pass⚠️ skip✅ Pass✅ Pass✅ Pass
CPUFreq_Validation✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
CPU_affinity✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
DSP_AudioPD✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
Ethernet⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip
Freq_Scaling✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
GIC✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
IPA✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
Interrupts✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
OpenCV✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
PCIe✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
Probe_Failure_Check❌ Fail❌ Fail❌ Fail✅ Pass❌ Fail❌ Fail❌ Fail
RMNET✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
UFS_Validation✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
USBHost✅ Pass❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail
WiFi_Firmware_Driver❌ Fail✅ Pass❌ Fail✅ Pass✅ Pass✅ Pass✅ Pass
WiFi_OnOff❌ Fail✅ Pass❌ Fail⚠️ skip✅ Pass✅ Pass✅ Pass
adsp_remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
cdsp_remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
gpdsp_remoteproc⚠️ skip✅ Pass✅ Pass⚠️ skip⚠️ skip✅ Pass✅ Pass
hotplug✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
irq✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
kaslr✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
pinctrl✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
qcom_hwrng✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
rngtest✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
shmbridge✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
smmu❌ Fail❌ Fail✅ Pass❌ Fail✅ Pass✅ Pass❌ Fail
watchdog✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
wpss_remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass

@sgaud-quic

Copy link
Copy Markdown
Contributor

Would wait for Shikra device to be enabled in CI.

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Casehamoa-iot-evk-multimedialemans-evk-multimediamonaco-evk-multimediapurwa-iot-evk-multimediaqcs615-ride-multimediaqcs6490-rb3gen2-multimediaqcs8300-ride-multimediaqcs9100-ride-r3-multimediashikra-iqs-evk-multimedia
Audio_Card_Registration⚠️ skip✅ Pass✅ Pass✅ Pass⚠️ skip✅ Pass⚠️ skip⚠️ skip◻️
BT_FW_KMD_Service✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
BT_ON_OFF✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
BT_SCAN✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail
CPUFreq_Validation✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
CPU_affinity✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
DSP_AudioPD✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
Ethernet⚠️ skip✅ Pass✅ Pass⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip⚠️ skip
Freq_Scaling✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
GIC✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail
IPA✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
Interrupts✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
KVM_Driver❌ Fail✅ Pass✅ Pass❌ Fail❌ Fail❌ Fail❌ Fail✅ Pass◻️
KVM_EL2_DTB❌ Fail✅ Pass✅ Pass❌ Fail❌ Fail❌ Fail❌ Fail✅ Pass◻️
KVM_Infra❌ Fail✅ Pass✅ Pass❌ Fail❌ Fail❌ Fail❌ Fail✅ Pass◻️
OpenCV✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
PCIe✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
Probe_Failure_Check❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail❌ Fail
RMNET✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
UFS_Validation✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass⚠️ skip
USBHost✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail❌ Fail❌ Fail❌ Fail
WiFi_Firmware_Driver❌ Fail✅ Pass❌ Fail❌ Fail✅ Pass✅ Pass✅ Pass✅ Pass⚠️ skip
WiFi_OnOff❌ Fail✅ Pass❌ Fail❌ Fail✅ Pass✅ Pass✅ Pass✅ Pass⚠️ skip
adsp_remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass⚠️ skip
cdsp_remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
gpdsp_remoteproc⚠️ skip✅ Pass✅ Pass⚠️ skip⚠️ skip⚠️ skip✅ Pass✅ Pass⚠️ skip
hotplug✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
irq✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
kaslr✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
pinctrl✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
qcom_hwrng✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass❌ Fail
rngtest✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
shmbridge✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass
smmu❌ Fail❌ Fail✅ Pass❌ Fail❌ Fail✅ Pass✅ Pass❌ Fail✅ Pass
watchdog✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass◻️
wpss_remoteproc✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass✅ Pass

@sgaud-quic

Copy link
Copy Markdown
Contributor

Vishnu Santhosh (@quic-vishsant) are the upstream comments resolved ?

Please rebase PR on tip.

Bartosz Golaszewskiand others added 13 commits August 20, 2026 19:59
For easier maintenance and better readability order all includes
alphabetically.
Link: https://lore.kernel.org/r/20251106-qcom-bam-dma-refactor-v1-1-0e2baaf3d81a@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Simplify locking across the driver with lock guards from cleanup.h.
Link: https://lore.kernel.org/r/20251106-qcom-bam-dma-refactor-v1-2-0e2baaf3d81a@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Sometimes the user needs to split each entry on the mapped scatter list
due to DMA length constrains. This helper returns a number of entities
assuming that each of them is not bigger than supplied maximum length.
Link: https://lore.kernel.org/r/20260108105619.3513561-2-andriy.shevchenko@linux.intel.com
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Instead of open coded variant let's use recently introduced helper.
Link: https://lore.kernel.org/r/20260108105619.3513561-11-andriy.shevchenko@linux.intel.com
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
…ompatible
On platforms where the modem DMAs into the BAM-DMUX RX data buffers and
the XPU enforces per-region access control, each individually
DMA-mapped RX buffer consumes an XPU resource group. With only ~16
groups available, the per-buffer mappings exhaust the table and inbound
transfers fault.
Add qcom,shikra-bam-dmux as an additional compatible for the Shikra SoC,
paired with the generic qcom,bam-dmux fallback, so the driver can match
on it via its of_device_id table.
Link: https://lore.kernel.org/r/20260714-qcom-bam-dmux-vmid-ext-v1-1-3f29da7cca76@oss.qualcomm.com
Co-developed-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
…rent block
On Qualcomm SoCs where the modem (e.g. the mDSP on Shikra, VMID 43 /
NAV) is the AXI master for BAM-DMUX RX transfers and the XPU enforces
per-region access control, each individually DMA-mapped RX buffer
requires its own XPU resource group (RG). With ~16 RGs available, the
32 per-buffer dma_map_single() calls exhaust the table and the first
inbound transfer faults with an XPU violation.
BAM-DMUX is a singleton (exactly one instance per SoC), so the
destination VMID does not need to be a DT property; it is looked up
from the compatible string's match data instead. Add struct
bam_dmux_data with a single vmid field, and a shikra_data instance
hardcoding QCOM_SCM_VMID_NAV for qcom,shikra-bam-dmux.
When match data is present, allocate all BAM_DMUX_NUM_SKB RX buffers as
a single contiguous dma_alloc_coherent() block and SCM-assign that
block to HLOS plus the VMID once at probe. This reduces RG consumption
from 32 to 1. The block is never reclaimed across a modem power cycle
(bam_dmux_power_off() does not touch it), so the probe-time assignment
covers every subsequent restart without re-assigning or reclaiming. It
is reclaimed to HLOS only once, at remove or on a probe error, and if
that reclaim fails it is leaked rather than returned to the page
allocator.
Each rx_skbs[] slot is pre-assigned its virtual and DMA address from
the block, so no per-buffer mapping is needed at power-on. Because the
coherent block is not page-backed, received payload is copied into a
regular netdev skb before handoff to the network stack; this is an
unavoidable extra copy on the XPU-enforced RX path.
Platforms without match data are unaffected: rx_virt stays NULL, no
coherent memory is allocated, and the per-buffer dma_map_single() path
is unchanged.
Link: https://lore.kernel.org/r/20260714-qcom-bam-dmux-vmid-ext-v1-2-3f29da7cca76@oss.qualcomm.com
Co-developed-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
…erty
A SoC can have multiple BAM DMA instances. Some of these BAMs are
powered by a remote processor that enforces XPU (eXternal Protection
Unit) access control and reads the per-channel descriptor FIFOs as an
AXI master under that remote processor's execution environment, so
their FIFOs must be accessible to the remote processor's VMID; other
BAM instances on the same SoC are not behind such a remote processor
and must not have this property set.
Add an optional qcom,vmid property listing the destination VMID(s)
that the affected BAM instance's descriptor FIFOs must be accessible
to. HLOS is always the source owner and must not be listed.
Link: https://lore.kernel.org/r/20260714-qcom-bam-dma-vmid-ext-v1-1-cef87c57b7dc@oss.qualcomm.com
Co-developed-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
…remote VMID
On Qualcomm SoCs where the BAM is powered by a remote processor that
enforces XPU access control (e.g. the mDSP on Shikra, VMID 43 / NAV),
the BAM reads the descriptor FIFO as an AXI master under the remote
execution environment. Without an SCM grant for the remote VMID, the
first descriptor enqueue faults with an XPU violation.
Parse the optional qcom,vmid DT property as a list of destination
VMIDs. When present, SCM-assign each channel's descriptor FIFO to HLOS
plus the listed VMIDs; num_vmids being non-zero is derived purely from
qcom,vmid, a board-integration property, not from the per-SoC IP data,
and is distinct from qcom,powered-remotely.
A BAM with configured VMIDs has two properties that shape the channel
lifecycle:
1. The remote firmware owns the BAM's power and reset. It may remove
power during error recovery before the driver releases its
channels, so any pipe/block register access at teardown can raise
a synchronous external abort, and a local reset is redundant as
the remote re-initialises the hardware on the next power-on.
2. TZ does not revoke the SCM grant when the remote powers down. A
FIFO assigned once stays assigned across every power cycle, and
re-assigning or reclaiming it while the remote is mid-teardown is
rejected by TZ with -EINVAL.
Handle both by keeping the descriptor FIFO as a persistent resource on
such BAMs: allocate and SCM-assign it once on the first
bam_alloc_chan(), keep it (and its grant) across power cycles, and
reclaim it to HLOS and free it only once in bam_dma_remove(). If the
final reclaim fails the remote still has access, so the buffer is
leaked rather than returned to the page allocator; the source-VMID
bitmask stored by qcom_scm_assign_mem() drives that reclaim.
bam_free_chan() on such a BAM therefore only drops local channel state
(clear ->initialized, decrement active_channels) with no MMIO and no
SCM call, so the block and pipe are re-initialised on the next
power-on while power is present. The bam_chan_init_hw() pipe reset in
bam_dma_terminate_all() is likewise skipped. reclaiming the FIFO is an
SCM call, not a register access, so bam_dma_remove() stays safe.
Platforms that do not set qcom,vmid keep num_vmids 0, make no SCM
call, and leave the alloc/free and register-access paths unchanged.
Link: https://lore.kernel.org/r/20260714-qcom-bam-dma-vmid-ext-v1-2-cef87c57b7dc@oss.qualcomm.com
Co-developed-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
Some Qualcomm SoCs using the generic PAS remoteproc driver (e.g.
Shikra) implement the BAM-DMUX protocol on the modem remoteproc to
expose network data channels. The hardware/firmware resources
required by the BAM-DMUX driver are described in an extra device
tree node below the modem remoteproc, with the compatible
"qcom,bam-dmux".
qcom_q6v5_mss.c already creates a platform device for this node
(commit 59983c7 ("remoteproc: qcom_q6v5_mss: Create platform
device for BAM-DMUX")), but qcom_q6v5_pas.c has no equivalent logic,
so the bam-dmux node never probes on SoCs handled by this driver.
Mirror the qcom_q6v5_mss.c approach: create a platform device
specifically for the "qcom,bam-dmux" child node on probe, and
destroy it on remove. of_get_compatible_child() returns NULL when
the node is absent, and of_platform_device_create()/of_node_put()
are NULL-safe, so this is a no-op for the many PAS-based SoCs that
have no bam-dmux child.
Link: https://lore.kernel.org/r/20260711-qcom-q6v5-pas-bam-dmux-v1-1-1e9231143b79@oss.qualcomm.com
Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
v2 of this series moves the bam-dmux node below the modem remoteproc
(remoteproc_mpss) instead of at the root, so that userspace can
associate the resulting network interfaces with the owning remoteproc
via udev/sysfs. Reverting the v1 placement here to pick v2 on top.
This reverts commit a4a9273.
Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
…bnode
The BAM-DMUX node lives as a direct child of the modem PAS remoteproc
node, but qcom,shikra-pas.yaml has unevaluatedProperties: false and
does not list bam-dmux, so any DT adding this subnode fails schema
validation.
Add an optional bam-dmux property referencing qcom,bam-dmux.yaml,
mirroring qcom,msm8916-mss-pil.yaml.
Co-developed-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260727-shikra-pas-bam-dmux-binding-v1-1-c0159c7c3ed4@oss.qualcomm.com
Add required nodes to enable the upstream BAM-DMUX WWAN driver on
Qualcomm Shikra SoC.
The SMSM (Shared Memory State Machine) node provides the power
control signaling between the AP and modem for BAM-DMUX. The
BAM DMA controller node describes the A2 modem BAM hardware as a
standard DMA controller. The BAM-DMUX node references the DMA
channels and the pc/pc-ack interrupt lines from the modem SMSM
entry for power control signaling.
The BAM-DMUX node is placed below the modem remoteproc so that
userspace can associate the resulting network interfaces with the
owning remoteproc via udev/sysfs, matching how qcom_q6v5_mss.c
already handles the equivalent node on older SoCs.
Link: https://lore.kernel.org/r/20260711-qcom-shikra-dts-bam-dmux-v2-1-d5b33ee32138@oss.qualcomm.com
Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
On the Qualcomm Shikra SoC the mDSP (VMID 43 / QCOM_SCM_VMID_NAV) is
the AXI master for BAM descriptor FIFO accesses. The XPU enforces
per-region access control; without an SCM assignment granting NAV
access, the first DMA transfer triggers an XPU violation.
Add qcom,vmid = <QCOM_SCM_VMID_NAV> to the bam_dmux_dma controller
node so bam_dma SCM-assigns each channel descriptor FIFO at
allocation. BAM-DMUX itself is a singleton and no longer needs a DT
property for its destination VMID: the driver now selects
QCOM_SCM_VMID_NAV internally via the qcom,shikra-bam-dmux compatible's
match data.
Link: https://lore.kernel.org/r/20260714-b4-qcom-shikra-dts-bam-dmux-vmid-ext-v1-1-5b19da8d7735@oss.qualcomm.com
Co-developed-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
@quic-vishsant

Copy link
Copy Markdown
Author

Vishnu Santhosh (Vishnu Santhosh (@quic-vishsant)) are the upstream comments resolved ?

Please rebase PR on tip.

Rebased on tip. The upstream conversation hasn't concluded yet.

@qcomlnxci
qcomlnxci requested a review from a teamAugust 20, 2026 16:07
@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Casehamoa-iot-evk-multimedialemans-evk-multimediamonaco-evk-multimediapurwa-iot-evk-multimediaqcs615-ride-multimediaqcs6490-rb3gen2-multimediaqcs8300-ride-multimediaqcs9100-ride-r3-multimediashikra-iqs-evk-multimedia
Audio_Card_Registration✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass⚠️ skip⚠️ skip⚠️ skip
BT_FW_KMD_Service✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
BT_ON_OFF✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
BT_SCAN✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass❌ Fail
CPUFreq_Validation✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
CPU_affinity✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
DSP_AudioPD✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass⚠️ skip
Ethernet⚠️ skip◻️✅ Pass⚠️ skip◻️⚠️ skip⚠️ skip⚠️ skip⚠️ skip
Freq_Scaling✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
GIC✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass❌ Fail
IPA✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
Interrupts✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
KVM_Driver❌ Fail◻️✅ Pass❌ Fail◻️❌ Fail❌ Fail✅ Pass❌ Fail
KVM_EL2_DTB❌ Fail◻️✅ Pass❌ Fail◻️❌ Fail❌ Fail✅ Pass❌ Fail
KVM_Infra❌ Fail◻️✅ Pass❌ Fail◻️❌ Fail❌ Fail✅ Pass❌ Fail
OpenCV✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
PCIe✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
Probe_Failure_Check❌ Fail◻️❌ Fail❌ Fail◻️❌ Fail❌ Fail❌ Fail❌ Fail
RMNET✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
UFS_Validation✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass⚠️ skip
USBHost✅ Pass◻️✅ Pass✅ Pass◻️❌ Fail❌ Fail❌ Fail❌ Fail
WiFi_Firmware_Driver✅ Pass◻️❌ Fail✅ Pass◻️✅ Pass✅ Pass✅ Pass⚠️ skip
WiFi_OnOff✅ Pass◻️❌ Fail✅ Pass◻️✅ Pass✅ Pass✅ Pass⚠️ skip
adsp_remoteproc✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass⚠️ skip
cdsp_remoteproc✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
gpdsp_remoteproc⚠️ skip◻️✅ Pass⚠️ skip◻️⚠️ skip✅ Pass✅ Pass⚠️ skip
hotplug✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
irq✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
kaslr✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
pinctrl✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
qcom_hwrng✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️
rngtest✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
shmbridge✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
smmu❌ Fail◻️✅ Pass❌ Fail◻️✅ Pass✅ Pass❌ Fail✅ Pass
watchdog✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass
wpss_remoteproc✅ Pass◻️✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass✅ Pass

@qlijarvis

Copy link
Copy Markdown

PR #838 — validate-patch

PR:#838

VerdictIssuesDetailed Report
⚠️0Full report

Final Summary

  1. Lore link present: Yes - 12/13 commits have lore links (commit 10 is revert, no link expected or required)

  2. Lore link matches PR commits:⚠️Mostly Yes - Spot-checked diffs match lore patches. Commit 5 has abbreviated commit message (minor). Commits 12-13 have incorrect prefix (BACKPORT: should be FROMLIST:).

  3. Upstream patch status:

    • Commits 1-4: ✅ Upstreamed (merged Nov 2025 / Jan 2026)
    • Commits 5-9, 11-13: ⏳ In review (posted July 2026, no decision yet)
    • Commit 10: N/A (internal revert)
  4. PR present in qcom-next/topics: Partial - 3/13 commit(s) only have partial integration evidence

Verdict: ⚠️ — click to expand

🔍 Patch Validation Report

PR:#838 - BAM-DMUX support for Shikra (13 commits)
Verdict:⚠️PARTIAL


Summary by Commit

✅ Commits 1-4: UPSTREAM patches (Accepted)

#SubjectLore LinkStatus
1UPSTREAM: dmaengine: qcom: bam_dma: order includeslore✅ ACKed - merged as 892f2bb48791
2UPSTREAM: dmaengine: qcom: bam_dma: use lock guardslore✅ ACKed - merged as 20f581834aac
3UPSTREAM: scatterlist: introduce sg_nents_for_dma()lore✅ ACKed - merged as 80c70bfb95cd
4UPSTREAM: dmaengine: qcom: bam_dma: use sg_nents_for_dma()lore✅ ACKed - merged as 107fdf0c4e94

Validation: Commits 1-2 applied by Vinod Koul (dmaengine maintainer) on Nov 6, 2025. Commits 3-4 from Andy Shevchenko's series. All four are present in qcom-next. Authorship preserved correctly. Diff content matches lore patches.


⚠️ Commits 5-9: FROMLIST patches (Posted July 2026, under review)

#SubjectLore LinkStatus
5FROMLIST: dt-bindings: net: qcom,bam-dmux: Add qcom,shikra-bam-dmuxlore⏳ Decision Pending - posted Jul 14, 2026
6FROMLIST: net: wwan: qcom_bam_dmux: Alloc RX buffers as coherent blocklore⏳ Decision Pending - posted Jul 14, 2026
7FROMLIST: dt-bindings: dma: qcom,bam-dma: Add optional qcom,vmidlore⏳ Decision Pending - posted Jul 14, 2026
8FROMLIST: dmaengine: qcom: bam_dma: SCM-assign DMA bufferslore⏳ Decision Pending - posted Jul 14, 2026
9FROMLIST: remoteproc: qcom_q6v5_pas: Create platform device for bam-dmuxlore⏳ Decision Pending - posted Jul 11, 2026

Validation: All five patches posted to upstream mailing lists in July 2026 (recent). No merge/NAK signals found in lore threads. Commits 5-8 present in qcom-next. Commit 9 present in topics branch. Authorship: Vishnu Santhosh (submitter) correctly appears in From: for FROMLIST commits.

Issue (Commit 5): PR commit message is abbreviated compared to lore. Lore includes full context: "the XPU (eXternal Protection Unit) enforces per-region access control, each individually DMA-mapped RX buffer consumes an XPU resource group. With only ~16 groups available on Shikra (mDSP, VMID 43 / NAV)..." PR version omits the parenthetical expansions and Shikra-specific details. This is acceptable for FROMLIST (minor adaptation), but full context aids reviewers.


⚠️ Commit 10: Revert (No lore link - internal workflow)

#SubjectLore LinkStatus
10Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support"N/A (revert)⚠️ Partial presence in qcom-next/topics

Validation: This commit reverts a4a9273264cf to prepare for v2 placement of bam-dmux node. No lore link expected for internal workflow reverts. Integration report shows "partial" presence - the revert logic is present but full verification incomplete.

Recommendation: Acceptable for internal integration workflow. Revert commit message clearly explains rationale (v2 moves node below remoteproc).


⚠️ Commits 11-13: FROMLIST/BACKPORT patches (Posted July 2026)

#SubjectLore LinkStatus
11FROMLIST: dt-bindings: remoteproc: qcom,shikra-pas: Add bam-dmuxlore⏳ Decision Pending - posted Jul 27, 2026
12BACKPORT: arm64: dts: qcom: shikra: Add BAM-DMUX supportlore⏳ Decision Pending - posted Jul 11, 2026 (v2)
13BACKPORT: arm64: dts: qcom: shikra: Add qcom,vmid to bam-dmuxlore⏳ Decision Pending - posted Jul 14, 2026

Validation: Commits 11-12 show "partial" presence in integration report. Commit 13 present in qcom-next.

Issue (Commit 12): Prefix is BACKPORT: but lore patch is v2 (not yet merged upstream). Should be FROMLIST: until upstream acceptance. BACKPORT: implies the patch is already merged upstream and being backported with modifications.

Issue (Commit 13): Same prefix issue - BACKPORT: used for a patch still under review (posted Jul 14, 2026). Should be FROMLIST:.


Commit Message Validation

CheckStatusNotes
Lore links present12/13 commits have lore links (commit 10 is revert, no link expected)
Subject matches upstream⚠️Commit 5: abbreviated; Commits 12-13: prefix mismatch
Body preserves rationale⚠️Commit 5: abbreviated context
Authorship preservedUPSTREAM commits: original authors preserved; FROMLIST: submitter in From: (correct)
Signed-off-by chainAll commits have proper SoB chains

Diff Comparison

Spot-checked commits 1, 2, 5 against lore patches:

  • Commit 1: Diff matches lore patch exactly (include reordering)
  • Commit 2: Diff matches lore patch (lock guard conversion)
  • Commit 5: Diff matches lore patch (dt-binding compatible addition)

No semantic changes detected. Context-only deltas expected due to different base trees.


Upstream Patch Status

Commit RangeCommunity VerdictEvidence
1-4 (UPSTREAM)ACKedMerged into maintainer trees; commit SHAs confirmed by Vinod Koul
5-9 (FROMLIST)Decision PendingPosted Jul 2026; no merge/NAK signals yet; active review window
10 (Revert)N/AInternal workflow commit
11-13 (FROMLIST/BACKPORT)Decision PendingPosted Jul 2026; no merge/NAK signals yet

Integration Presence (qcom-next/topics)

Per integration_presence_report.md:

  • Present: 10/13 commits (commits 1-9, 13)
  • Partial: 3/13 commits (commits 10, 11, 12)
  • Missing: 0/13 commits

Overall:⚠️PARTIAL - 3 commits have incomplete integration evidence


Issues Found

  1. Commit 5 (FROMLIST): Commit message abbreviated compared to lore - omits "(eXternal Protection Unit)" expansion and Shikra-specific VMID details. Minor issue; acceptable for FROMLIST but full context preferred.

  2. Commits 12-13 (Prefix mismatch): Both use BACKPORT: prefix but reference lore patches still under review (posted July 2026, no merge confirmation). Should use FROMLIST: prefix until upstream acceptance is confirmed.

  3. Commits 10-12 (Integration): Integration report shows "partial" presence - subject/partial tree evidence found but full change verification incomplete.


Recommendation

Merge with corrections:

  1. Update commit 12 and 13 prefixes from BACKPORT: to FROMLIST: - these patches are not yet merged upstream (still under review as of July 2026).

  2. Optional: Expand commit 5 message to include full XPU context from lore patch for better reviewer understanding.

  3. Verify commits 10-12 - integration report shows "partial" presence. Recommend manual verification that these commits are fully integrated into qcom-next or appropriate topic branches before final merge.

  4. Monitor upstream status - Commits 5-13 are all under active review (posted July 2026). Track mailing list threads for acceptance/rejection signals. If any receive NAKs, corresponding PR commits must be updated or removed.


Final Summary

  1. Lore link present: Yes - 12/13 commits have lore links (commit 10 is revert, no link expected or required)

  2. Lore link matches PR commits:⚠️Mostly Yes - Spot-checked diffs match lore patches. Commit 5 has abbreviated commit message (minor). Commits 12-13 have incorrect prefix (BACKPORT: should be FROMLIST:).

  3. Upstream patch status:

    • Commits 1-4: ✅ Upstreamed (merged Nov 2025 / Jan 2026)
    • Commits 5-9, 11-13: ⏳ In review (posted July 2026, no decision yet)
    • Commit 10: N/A (internal revert)
  4. PR present in qcom-next/topics:⚠️Partial - 10/13 commits fully present, 3/13 commits have partial integration evidence (commits 10, 11, 12 per integration_presence_report.md)

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

CommitSubjectqcom-nexttopicsFinal
1/13[PATCH 01/13] UPSTREAM: dmaengine: qcom: bam_dma: order includespresent - exact patch-id match at 892f2bbskipped - not checked because qcom-next already contains the changepresent
2/13[PATCH 02/13] UPSTREAM: dmaengine: qcom: bam_dma: use lock guardspresent - exact patch-id match at 20f5818skipped - not checked because qcom-next already contains the changepresent
3/13[PATCH 03/13] UPSTREAM: scatterlist: introduce sg_nents_for_dma()present - exact patch-id match at 80c70bfskipped - not checked because qcom-next already contains the changepresent
4/13[PATCH 04/13] UPSTREAM: dmaengine: qcom: bam_dma: usepresent - exact patch-id match at 107fdf0skipped - not checked because qcom-next already contains the changepresent
5/13[PATCH 05/13] FROMLIST: dt-bindings: net: qcom,bam-dmux: Addpresent - exact patch-id match at d50930bskipped - not checked because qcom-next already contains the changepresent
6/13[PATCH 06/13] FROMLIST: net: wwan: qcom_bam_dmux: Alloc RX buffers aspresent - exact patch-id match at 5f0bfd2skipped - not checked because qcom-next already contains the changepresent
7/13[PATCH 07/13] FROMLIST: dt-bindings: dma: qcom,bam-dma: Add optionalpresent - exact patch-id match at 74de4easkipped - not checked because qcom-next already contains the changepresent
8/13[PATCH 08/13] FROMLIST: dmaengine: qcom: bam_dma: SCM-assignpresent - all checked added lines are presentskipped - not checked because qcom-next already contains the changepresent
9/13[PATCH 09/13] FROMLIST: remoteproc: qcom_q6v5_pas: Create platformmissing - no subject, patch-id, or full tree-content match foundpresent - all checked added lines are presentpresent
10/13[PATCH 10/13] Revert "FROMLIST: arm64: dts: qcom: shikra: Addpartial - subject or partial tree evidence found, but full change was not verifiedmissing - no subject, patch-id, or full tree-content match foundpartial
11/13[PATCH 11/13] FROMLIST: dt-bindings: remoteproc: qcom,shikra-pas:partial - subject or partial tree evidence found, but full change was not verifiedpartial - subject or partial tree evidence found, but full change was not verifiedpartial
12/13[PATCH 12/13] BACKPORT: arm64: dts: qcom: shikra: Add BAM-DMUXpartial - subject or partial tree evidence found, but full change was not verifiedpartial - subject or partial tree evidence found, but full change was not verifiedpartial
13/13[PATCH 13/13] BACKPORT: arm64: dts: qcom: shikra: Add qcom,vmid topresent - all checked added lines are presentskipped - not checked because qcom-next already contains the changepresent

Final Status

overall_status: PARTIAL
present_commits: 10/13
partial_commits: 3/13
missing_commits: 0/13
topics_checked_for_commits: 4/13
final_summary: PR present in qcom-next/topics: Partial - 3/13 commit(s) only have partial integration evidence

@qlijarvis

Copy link
Copy Markdown

PR #838 — checker-log-analyzer

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

CheckerResultSummary
CheckerResultSummary
checkpatch1 CHECK (acceptable)
dt-binding-checkAll bindings validated
dtb-checkPre-existing tree issue (not caused by PR)
sparse-checkNo warnings
check-uapi-headersNo ABI changes
check-patch-compliance4 commits with issues
tag-check1 commit missing prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR:#838 - BAM-DMUX support for Shikra
Source:https://github.com/qualcomm-linux/kernel-config/actions/runs/32390217222

CheckerResultSummary
checkpatch1 CHECK (acceptable)
dt-binding-checkAll bindings validated
dtb-checkPre-existing tree issue (not caused by PR)
sparse-checkNo warnings
check-uapi-headersNo ABI changes
check-patch-compliance4 commits with issues
tag-check1 commit missing prefix

❌ dtb-check

Root cause: Pre-existing tree issue — video-codec@5a00000 node in shikra DTBs has iommus property with insufficient cells.

Failure details:

shikra-cqm-evk.dtb: video-codec@5a00000 (qcom,shikra-iris): iommus: [[44, 1920, 32]] is too short
shikra-cqs-evk.dtb: video-codec@5a00000 (qcom,shikra-iris): iommus: [[44, 1920, 32]] is too short
shikra-iqs-evk.dtb: video-codec@5a00000 (qcom,shikra-iris): iommus: [[43, 1920, 32]] is too short

Analysis: This PR does not modify the video-codec@5a00000 node or any iommus properties. The PR only touches:

  • drivers/dma/qcom/bam_dma.c
  • drivers/net/wwan/qcom_bam_dmux.c
  • drivers/remoteproc/qcom_q6v5_pas.c
  • arch/arm64/boot/dts/qcom/shikra.dtsi (BAM-DMUX nodes only)
  • DT bindings for bam-dma, bam-dmux, and shikra-pas

The video-codec node exists in the base tree and was not touched by this PR. This is a recurring tree-wide issue that gets exposed when new shikra DTBs are built.

Fix: Not required for this PR. The video-codec iommus property needs more cells per the qcom,shikra-iris binding requirements, but this is a separate tree issue unrelated to BAM-DMUX changes.

Reproduce locally:

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

❌ check-patch-compliance

Root cause: Content mismatch between PR commits and upstream lore patches, plus one Revert commit missing a prefix.

Issue 1: Content mismatch (3 commits)

Commits affected:

  1. f750020724be — "UPSTREAM: dmaengine: qcom: bam_dma: order includes alphabetically"
  2. feb5f4cabe02 — "UPSTREAM: dmaengine: qcom: bam_dma: use lock guards"
  3. c94444ef7551 — "BACKPORT: arm64: dts: qcom: shikra: Add qcom,vmid to BAM-DMA node"

Failure details:

Checking commit: UPSTREAM: dmaengine: qcom: bam_dma: order includes alphabetically
Change is different from the one mentioned in Link
Checking commit: UPSTREAM: dmaengine: qcom: bam_dma: use lock guards
Change is different from the one mentioned in Link
Checking commit: BACKPORT: arm64: dts: qcom: shikra: Add qcom,vmid to BAM-DMA node
Change is different from the one mentioned in Link

Analysis: The checker compares the PR commit diff against the upstream lore patch using b4 am. Differences can be:

  • Context-only shifts (line numbers changed due to other patches) — not a real issue
  • Legitimate adaptations (e.g., BACKPORT with vendor-specific changes) — acceptable if documented
  • Missing/extra hunks — requires investigation

For commits 1 and 2 (UPSTREAM prefix), the content should match exactly. For commit 3 (BACKPORT prefix), differences are expected and acceptable.

Fix:

For UPSTREAM commits (1 & 2):

# Verify the actual difference
b4 am --single-message -C -l -3 https://lore.kernel.org/r/20251106-qcom-bam-dma-refactor-v1-1-0e2baaf3d81a@linaro.org -o /tmp/out
git format-patch -1 f750020724be --stdout > /tmp/pr.patch
diff <(awk '/^diff/,/^--$/' /tmp/pr.patch | grep -E '^[+-][^+-]') \
<(awk '/^diff/,/^--$/' /tmp/out/*.mbx | grep -E '^[+-][^+-]')

If the diff shows only context line shifts → acceptable (checker limitation).
If the diff shows missing/extra code → rebase on the exact upstream commit or document the adaptation.

For BACKPORT commit (3):

  • BACKPORT prefix indicates intentional modifications from upstream.
  • The commit message should document what was changed and why.
  • No action needed if the changes are vendor-specific adaptations.

Reproduce locally:

cd kernel
../kernel-checkers/check-patch-compliance.sh <base_sha><head_sha>

Issue 2: Missing prefix on Revert commit

Commit affected:

  • a8448e9f89dc — "Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support""

Failure details:

Checking commit: Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support"
Commit summary does not start with a required prefix

Root cause: The Revert commit does not have a prefix tag before the word Revert. The checker requires all commits to start with a valid prefix (FROMLIST:, FROMGIT:, UPSTREAM:, BACKPORT:, etc.).

Fix:

git rebase -i <base_sha># mark commit a8448e9f89dc as 'edit'
git commit --amend -m "FROMLIST: Revert \"FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support\""
git rebase --continue

Choose the appropriate prefix:

  • If the revert itself was posted to lore → FROMLIST: Revert ...
  • If the revert is in a maintainer tree → FROMGIT: Revert ...
  • If the revert is merged upstream → UPSTREAM: Revert ...

Reproduce locally:

echo"Revert \"FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support\""| \
grep -qE '^(FROMLIST|FROMGIT|UPSTREAM|BACKPORT|QCLINUX|PENDING|WORKAROUND):'|| \
echo"FAIL: Missing prefix"

❌ tag-check

Root cause: Same as check-patch-compliance Issue 2 — the Revert commit is missing a subject-line prefix.

Commit affected:

  • a8448e9f89dc — "Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support""

Failure details:

Commit a8448e9f89dc ("Revert "FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX support""): subject line does not start with a required prefix.
All branches except qcom-next and qcom-next-staging require one of:
FROMLIST: / FROMGIT: / UPSTREAM: / BACKPORT: / QCLINUX: / PENDING: / WORKAROUND:

Fix: Same as check-patch-compliance Issue 2 above — add a prefix before Revert.


Verdict

3 blockers to fix before merge:

  1. Revert commit missing prefix (commit a8448e9f89dc) — add FROMLIST: or appropriate prefix before Revert.

  2. UPSTREAM commits content mismatch (commits f750020724be, feb5f4cabe02) — verify the diff against upstream lore patches. If only context shifts, acceptable. If real code differences, rebase or document.

  3. BACKPORT commit content mismatch (commit c94444ef7551) — verify the changes are intentional vendor adaptations and documented in the commit message.

Non-blocker:

  • dtb-check failure is a pre-existing tree issue unrelated to this PR's changes.

@qlijarvis

Copy link
Copy Markdown

LAVA Failed Case Triage Summary

PR: #838

Job 208072 | SoC qcs615-ride

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/208072

Failed test cases in LAVA job 208072 (SoC: qcs615-ride).

Case 1: Build Load Failure — HTTP download timeout
  1. Failed case: Build Load Failure — HTTP download timeout
  2. Root cause: Result: Build Load Failure. The LAVA dispatcher's HTTP download action timed out after 2397 seconds (39 minutes 57 seconds) while downloading a 975 MB build artifact (qcom-multimedia-image-qcs615-ride.rootfs.qcomflash.tar.gz) from AWS S3. The download reached 65% (634 MB) before timing out. The kernel never booted (no "Linux version" banner present in logs). Error: "http-download timed out after 2397 seconds".
  3. Possible fix: Re-trigger the CI job; if the timeout recurs, increase the http-download timeout from 2397s (00:39:57) to at least 3600s (1 hour) and the download-retry block timeout from 2397s to 3600s in the LAVA job definition. Additionally, investigate network bandwidth between the LAVA worker and AWS S3 us-west-2 region, as the download speed (~16 KB/s average) is abnormally slow for a 975 MB file.
  4. Detail analysis attachment: failed_case_job208072_1_detailed.md
Case 2: ** Build Load Failure — HTTP download timeout
  1. Failed case: ** Build Load Failure — HTTP download timeout
  2. Root cause: ** Result: Build Load Failure. The LAVA dispatcher's HTTP download of the 975 MB qcs615-ride build artifact from AWS S3 timed out after 2397 seconds at 65% completion due to abnormally slow network transfer rate (~16 MB/min vs expected 50-100+ MB/min).
  3. Possible fix: Re-trigger the CI job; if the timeout recurs, increase the http-download timeout from 2397s (~40min) to 7200s (2 hours) and the download-retry block timeout from 2400s to 7200s in the LAVA job definition, and/or investigate network path performance between the LAVA worker and AWS S3 us-west-2 region.
  4. Detail analysis attachment: failed_case_job208072_2_detailed.md
Case 3: ** Build Load Failure — HTTP download timeout
  1. Failed case: ** Build Load Failure — HTTP download timeout
  2. Root cause: ** Result: Build Load Failure. The LAVA dispatcher's HTTP download of the 975MB qcs615-ride build image from AWS S3 stalled at 65% completion and timed out after 2397 seconds (39m 57s). Network transfer rate was consistently slow (~0.26 MB/s average) and stopped completely after reaching 634MB, indicating a network infrastructure issue (congestion, throttling, or path failure) between the LAVA worker and S3 us-west-2.
  3. Possible fix: Re-trigger the CI job; if the issue recurs, increase the http-download timeout from 2397s (~40min) to 7200s (2 hours) and the download-retry block timeout from 00:39:57 to 02:00:00 in the LAVA job definition to accommodate slow network conditions. Additionally, investigate LAVA worker network connectivity to AWS S3 us-west-2 and check for concurrent job saturation or bandwidth throttling on the worker.
  4. Detail analysis attachment: failed_case_job208072_3_detailed.md
Case 4: Build Load Failure — HTTP download timeout
  1. Failed case: Build Load Failure — HTTP download timeout
  2. Root cause: Result: Build Load Failure. The LAVA dispatcher's HTTP download of the qcs615-ride rootfs image (975MB) timed out after 2397 seconds (39m57s) at 65% completion (634MB transferred). The download-retry action exhausted its single retry attempt, preventing the build artifact from being deployed to the board. No kernel boot occurred.
  3. Possible fix: Re-trigger the CI job; if the timeout recurs, increase the http-download timeout from the current 2397s (~40min) to 3600s (60min) and the download-retry block timeout from 40min to 90min in the LAVA job definition to accommodate the 975MB artifact size over slow network conditions.
  4. Detail analysis attachment: failed_case_job208072_4_detailed.md
Job 208073 | SoC qcs8300-ride

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/208073

Failed test cases in LAVA job 208073 (SoC: qcs8300-ride).

Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Add regulatory.db firmware file to the LAVA test rootfs at /lib/firmware/regulatory.db to silence the warning, OR update the Probe_Failure_Check test to exclude known-benign optional firmware files (regulatory.db, regulatory.db.p7s) from its failure pattern matching. This is a test environment issue, not a kernel regression. No kernel code changes required.
  4. Detail analysis attachment: failed_case_job208073_1_detailed.md
Case 2: ** USBHost
  1. Failed case: ** USBHost
  2. Root cause: ** The USBHost test failed because no external USB devices are physically connected to the qcs8300-ride board's USB host ports. The test detected only the USB 2.0 root hub (Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub) and no functional USB peripherals (storage, keyboard, mouse, etc.). Additionally, the xHCI controller reports USB3 root hub has no ports, indicating USB3 functionality is either disabled in the device tree or not supported on this board configuration. This is a test infrastructure / lab setup issue, not a kernel regression introduced by PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838.
  3. Possible fix: Connect a functional USB device (USB flash drive, keyboard, or mouse) to the qcs8300-ride board's USB host port before running the USBHost test. If USB devices are already connected, verify: (1) the USB cable/hub is functional, (2) the device is powered, (3) the USB port on the board is configured correctly in the device tree. If USB3 support is expected, verify the device tree enables USB3 PHY and ports for the xHCI controller at 0xa400000.
  4. Detail analysis attachment: failed_case_job208073_2_detailed.md
Case 3: KVM_Driver
  1. Failed case: KVM_Driver
  2. Root cause: KVM kernel module (CONFIG_KVM=y) is enabled in kernel config but the KVM driver failed to initialize at boot, resulting in missing /dev/kvm device node on QCS8300 Ride platform; no KVM initialization messages appear in dmesg, indicating the ARM KVM driver probe did not execute or failed silently.
  3. Possible fix: This is a pre-existing platform issue unrelated to the PR (which modifies only DMA engine code). Investigate why arch/arm64/kvm/arm.c:kvm_arch_init() is not creating /dev/kvm: check if CONFIG_KVM_ARM_HOST is enabled, verify CPU virtualization extensions are available (check /proc/cpuinfo for "virt" feature), confirm bootloader/firmware allows EL2 access, and review early boot dmesg for any KVM probe failures or missing prerequisites.
  4. Detail analysis attachment: failed_case_job208073_3_detailed.md
Case 4: KVM_EL2_DTB — KVM unavailable in guest VM
  1. Failed case: KVM_EL2_DTB — KVM unavailable in guest VM
  2. Root cause: QCS8300 Ride is running as a Primary VM under Gunyah hypervisor. KVM requires EL2 (hypervisor mode) to function, but the guest OS runs at EL1. Nested virtualization is not supported or not enabled in this Gunyah configuration, preventing /dev/kvm creation.
  3. Possible fix: This is a platform configuration limitation, not a kernel bug. To enable KVM testing: (1) Boot QCS8300 natively without Gunyah hypervisor, OR (2) Enable nested virtualization support in Gunyah hypervisor if available, OR (3) Skip KVM tests on Gunyah-based configurations in CI. The PR changes (DMA engine refactoring) are unrelated and do not cause this failure.
  4. Detail analysis attachment: failed_case_job208073_4_detailed.md
Case 5: KVM_Infra
  1. Failed case: KVM_Infra
  2. Root cause: KVM cannot initialize on QCS8300-Ride because the system is running under Gunyah hypervisor (EL2 already occupied). CONFIG_KVM is enabled but /dev/kvm device node is not created because nested virtualization is not supported in this configuration.
  3. Possible fix: This is a platform architectural limitation, not a regression. The test should be skipped on platforms running under Gunyah hypervisor. Add a test precondition check to skip KVM tests when running under a hypervisor (detect via /proc/cpuinfo or hypervisor detection mechanisms).
  4. Detail analysis attachment: failed_case_job208073_5_detailed.md
Case 6: KVM_Infra
  1. Failed case: KVM_Infra
  2. Root cause: /dev/kvm device node not present because the QCS8300 Ride platform is running as a guest under a hypervisor (evidenced by "arm-pv: using stolen time PV" at boot), and nested virtualization is not available or enabled on this platform.
  3. Possible fix: This is a pre-existing platform limitation, not a PR-introduced regression. The PR changes only affect DMA engine (bam_dma) and remoteproc drivers. Mark this test as expected-fail for QCS8300 Ride or enable nested virtualization support in the hypervisor configuration if the platform supports it.
  4. Detail analysis attachment: failed_case_job208073_6_detailed.md
Job 208074 | SoC hamoa-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/208074

Failed test cases in LAVA job 208074 (SoC: hamoa-evk).

Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: These are pre-existing platform configuration issues unrelated to the PR. The Probe_Failure_Check test should be updated to exclude known platform-specific probe failures that do not indicate regressions, or the hamoa-evk platform configuration should be fixed independently: (1) verify QSEECOM UEFI Secure App is loaded in TrustZone, (2) correct the SPMI LPG multi-LED "reg" property in hamoa DT, (3) add regulatory.db to the rootfs image.
  4. Detail analysis attachment: failed_case_job208074_1_detailed.md
Case 2: smmu
  1. Failed case: smmu
  2. Root cause: The smmu test detected that 6 critical platform devices (5 USB PHY devices at addresses a0f8800, a2f8800, a4f8800, a6f8800, a8f8800 and 1 Video codec device at aa00000) are missing IOMMU group attachments on the hamoa-evk platform, while their corresponding USB controller devices are correctly protected by IOMMU groups.
  3. Possible fix: Verify whether these USB PHY and Video codec devices require IOMMU protection on hamoa-evk. If they do, add the missing iommus property to their device tree nodes in the hamoa DTS file. If they are intentionally unprotected (e.g., PHY devices that don't perform DMA), update the smmu test's critical device list to exclude PHY devices and verify the video codec's DMA requirements.
  4. Detail analysis attachment: failed_case_job208074_2_detailed.md
Case 3: KVM_Driver — /dev/kvm device node not present
  1. Failed case: KVM_Driver — /dev/kvm device node not present
  2. Root cause: KVM initialization failed during kernel boot because HYP (EL2 hypervisor) mode is not available on the Hamoa IoT EVK platform; kernel message at boot time: "kvm [1]: HYP mode not available" indicates the CPU is not running at EL2 or the platform firmware does not support virtualization extensions.
  3. Possible fix: This is a platform hardware/firmware limitation, not a kernel regression introduced by PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 (which only modifies DMA engine drivers). The KVM test suite should be excluded from the Hamoa IoT EVK test matrix, or the test should be marked as expected-fail/skip for platforms without EL2 support. No kernel code fix is required.
  4. Detail analysis attachment: failed_case_job208074_3_detailed.md
Case 4: KVM_EL2_DTB — KVM unavailable (platform runs under Gunyah hypervisor)
  1. Failed case: KVM_EL2_DTB — KVM unavailable (platform runs under Gunyah hypervisor)
  2. Root cause: KVM driver initialization failed with "HYP mode not available" because the hamoa-evk platform boots under the Gunyah hypervisor (EL2 already occupied), preventing KVM from taking control of EL2; /dev/kvm device node was never created.
  3. Possible fix: This is not a kernel bug or PR regression. KVM tests should be skipped on platforms configured to run under Gunyah hypervisor. Update the LAVA test suite to detect hypervisor presence (check for "Gunyah based bootup" or "Hypervisor cold boot" in dmesg) and skip KVM tests when a hypervisor is active, or reconfigure the hamoa-evk platform to boot without Gunyah if KVM testing is required.
  4. Detail analysis attachment: failed_case_job208074_4_detailed.md
Case 5: ** KVM Infrastructure Test Failure — /dev/kvm Not Available (Platform Configuration Issue)
  1. Failed case: ** KVM Infrastructure Test Failure — /dev/kvm Not Available (Platform Configuration Issue)
  2. Root cause: ** The hamoa-evk platform runs under the Gunyah hypervisor which occupies EL2 (HYP mode). KVM requires direct EL2 access to provide virtualization services. When EL2 is occupied by another hypervisor, the Linux kernel runs at EL1 and KVM correctly detects this condition, prints "HYP mode not available", and does not create the /dev/kvm device node. This is expected behavior on Gunyah-based platforms.
  3. Possible fix: This is not a bug requiring a fix. The KVM test suite should be updated to skip KVM tests on platforms running under Gunyah or other Type-1 hypervisors. Add a test gate that checks for Gunyah presence (via device tree gunyah-hyp reserved memory node or hypervisor boot message) and marks KVM tests as SKIP rather than FAIL on such platforms.
  4. Detail analysis attachment: failed_case_job208074_5_detailed.md
Case 6: 0_qcom-next-ci-premerge-tests (LAVA Test Definition Wrapper Failure)
  1. Failed case: 0_qcom-next-ci-premerge-tests (LAVA Test Definition Wrapper Failure)
  2. Root cause: LAVA marked the overall test definition as "unfinished" because 5 individual sub-tests failed (Probe_Failure_Check, smmu, KVM_Driver, KVM_EL2_DTB, KVM_Infra). The test runner completed successfully (<LAVA_TEST_RUNNER EXIT> seen), but LAVA's orchestration layer propagates sub-test failures to the parent test definition.
  3. Possible fix: This is not a fixable issue - it is LAVA's expected behavior. The test definition wrapper always fails when any sub-test fails. To resolve the overall failure, investigate and fix the 5 individual failing sub-tests: (1) Probe_Failure_Check - kernel probe/firmware errors detected, (2) smmu - test failure (no error message in excerpt), (3-5) KVM_Driver/KVM_EL2_DTB/KVM_Infra - all fail because /dev/kvm is not available (KVM not enabled or not functional on hamoa-evk).
  4. Detail analysis attachment: failed_case_job208074_6_detailed.md
Job 208075 | SoC qcs9100-ride

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/208075

Failed test cases in LAVA job 208075 (SoC: qcs9100-ride).

Case 1: Probe_Failure_Check — Pre-existing Platform Configuration Issues
  1. Failed case: Probe_Failure_Check — Pre-existing Platform Configuration Issues
  2. Root cause: Three independent pre-existing platform configuration issues detected by the Probe_Failure_Check test: (1) Aquantia AQR115C Ethernet PHY missing firmware-name DT property causing -EINVAL probe failure; (2) regulatory.db firmware file absent from rootfs causing cfg80211 regulatory database load failure; (3) four PMIC temp-alarm devices stuck in deferred probe due to missing thermal zone or IIO ADC dependencies. None of these issues are introduced by PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 (BAM DMA/DMUX changes); all are pre-existing qcs9100-ride platform configuration gaps.
  3. Possible fix: These are known platform configuration issues that do not block PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 merge. For completeness: (1) Add firmware-name = "Rhe-AQR115C-v1.cld"; property to the Aquantia PHY node in qcs9100-ride.dtsi; (2) Install linux-firmware package or add regulatory.db to rootfs /lib/firmware/; (3) Add thermal zone bindings or IIO ADC channel references to the four PMIC temp-alarm nodes in qcs9100-ride device tree. The Probe_Failure_Check test is overly strict for CI gating — recommend suppressing these specific known platform gaps or adjusting test thresholds.
  4. Detail analysis attachment: failed_case_job208075_1_detailed.md
Case 2: smmu
  1. Failed case: smmu
  2. Root cause: Video codec device (aa00000.video-codec) on qcs9100-ride is missing the required iommus device tree property, preventing IOMMU group attachment and leaving the device unprotected for DMA operations.
  3. Possible fix: Add the iommus property to the video codec device tree node in arch/arm64/boot/dts/qcom/sa8775p.dtsi or the board-specific overlay, binding it to the appropriate SMMU phandle and stream ID, following the pattern used by other DMA masters on this SoC (e.g., UFS, Display, GPU).
  4. Detail analysis attachment: failed_case_job208075_2_detailed.md
Case 3: USBHost
  1. Failed case: USBHost
  2. Root cause: Test infrastructure issue — no physical USB devices connected to the qcs9100-ride board's USB host ports; only USB root hubs (Bus 001, 002, 003) are enumerated, indicating the USB host controller hardware and kernel drivers are functional but no peripheral devices are attached.
  3. Possible fix: Connect a functional USB device (e.g., USB flash drive, keyboard, or mouse) to one of the board's USB host ports before running the USBHost test; alternatively, update the test to skip or pass when only root hubs are present if external USB device connectivity is not a requirement for this CI configuration.
  4. Detail analysis attachment: failed_case_job208075_3_detailed.md
Case 4: 0_qcom-next-ci-premerge-tests
  1. Failed case: 0_qcom-next-ci-premerge-tests
  2. Root cause: LAVA test definition marked as failed because 3 individual test cases failed (Probe_Failure_Check, smmu, USBHost) during the test run on qcs9100-ride, despite the kernel booting successfully and the test runner completing normally.
  3. Possible fix: Investigate the 3 failed test cases individually: (1) Probe_Failure_Check - check dmesg for driver probe failures introduced by the BAM DMA refactoring patches; (2) smmu - verify SMMU/IOMMU functionality with the new lock guard changes; (3) USBHost - confirm USB host controller operation is not affected by the DMA driver changes. The BAM DMA patches in this PR refactor locking (lock guards) and include ordering, which may have introduced subtle timing or initialization issues affecting these subsystems.
  4. Detail analysis attachment: failed_case_job208075_4_detailed.md
Job 208076 | SoC purwa-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/208076

Failed test cases in LAVA job 208076 (SoC: purwa-evk).

Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Five probe failures detected during boot on purwa-evk (Shikra SoC): qcom_qseecom_uefisecapp (-EBUSY), two qcom-pcie instances (-ENODATA), qcom-spmi-lpg (-EINVAL), and regulatory.db firmware load (-ENOENT). These are pre-existing platform/configuration issues unrelated to the BAM-DMUX PR changes.
  3. Possible fix: Suppress this test failure as a known platform issue for purwa-evk: the probe failures are expected on this board configuration and do not indicate a kernel regression introduced by PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 (BAM-DMUX driver refactoring and DT changes).
  4. Detail analysis attachment: failed_case_job208076_1_detailed.md
Case 2: smmu
  1. Failed case: smmu
  2. Root cause: Test script incorrectly expects Qualcomm DWC3 USB wrapper nodes (a0f8800.usb, a2f8800.usb, a4f8800.usb, a6f8800.usb, a8f8800.usb) and video codec wrapper node (aa00000.video-codec) to have IOMMU group attachments. These are glue-layer/wrapper devices; only their child devices (the actual USB controllers at a000000.usb, a200000.usb, etc.) require and correctly have IOMMU protection. SMMU hardware is functioning correctly — all 36 IOMMU groups are present, no faults, no errors.
  3. Possible fix: Update the SMMU test script's device list to exclude wrapper/glue-layer devices and only check actual DMA-capable hardware (child USB controllers, not parent wrappers). The test expectation is incorrect for the purwa-evk platform's device tree architecture.
  4. Detail analysis attachment: failed_case_job208076_2_detailed.md
Case 3: KVM_Driver — Platform Limitation (HYP Mode Not Available)
  1. Failed case: KVM_Driver — Platform Limitation (HYP Mode Not Available)
  2. Root cause: The purwa-evk platform does not support ARM EL2 (Hypervisor) mode, which is a hardware prerequisite for KVM virtualization. Kernel log shows kvm [1]: HYP mode not available at boot time (line 2619, timestamp 5.719572s), causing KVM driver initialization to fail and /dev/kvm device node to not be created. CONFIG_KVM is enabled in kernel config, but the hardware does not provide the required virtualization extensions.
  3. Possible fix: This is not a kernel bug or PR-introduced regression — it is a known platform limitation of the purwa-evk board. The KVM test suite should be excluded from the purwa-evk LAVA job definition, or the test should be updated to skip gracefully when HYP mode is unavailable (check for /dev/kvm existence before running, or parse dmesg for "HYP mode not available" and report SKIP instead of FAIL). No kernel code change is required.
  4. Detail analysis attachment: failed_case_job208076_3_detailed.md
Case 4: KVM_EL2_DTB
  1. Failed case: KVM_EL2_DTB
  2. Root cause: KVM driver initialization failed at boot because HYP (EL2 hypervisor) mode is not available on the purwa-evk platform — the hardware or firmware does not support virtualization extensions required for KVM. The kernel log shows kvm [1]: HYP mode not available at boot time, preventing /dev/kvm device node creation.
  3. Possible fix: This is a platform limitation, not a PR-introduced regression. The PR changes only BAM-DMUX/DMA driver code and device tree, which are unrelated to KVM/virtualization. To resolve: (1) verify purwa-evk hardware supports ARMv8 virtualization extensions (VHE/nVHE); (2) confirm bootloader/firmware enables EL2 mode before kernel handoff; (3) if the platform genuinely lacks virtualization support, mark KVM tests as expected-fail or skip them in the LAVA job definition for this SoC.
  4. Detail analysis attachment: failed_case_job208076_4_detailed.md
Case 5: KVM_Infra — Pre-existing Platform Limitation (Not PR-Introduced)
  1. Failed case: KVM_Infra — Pre-existing Platform Limitation (Not PR-Introduced)
  2. Root cause: KVM subsystem initialization failed at boot with "kvm [1]: HYP mode not available" because the purwa-evk platform boots without EL2 (Hypervisor) mode enabled. CONFIG_KVM is enabled in the kernel configuration, but the hardware/firmware does not provide HYP mode access, preventing /dev/kvm device node creation. This is a platform-specific limitation unrelated to the PR changes (BAM DMA driver refactoring and shikra DTS updates).
  3. Possible fix: Mark KVM_Infra (and related KVM_Driver, KVM_EL2_DTB) tests as expected failures or skip them for purwa-evk in the LAVA job definition, since this platform does not support virtualization. If KVM support is required for purwa-evk, investigate bootloader/firmware configuration to enable EL2 mode at boot (check ABL/XBL settings, secure boot chain, and TrustZone configuration that may be preventing EL2 access).
  4. Detail analysis attachment: failed_case_job208076_5_detailed.md
Case 6: KVM_Infra
  1. Failed case: KVM_Infra
  2. Root cause: KVM driver initialization failed because HYP (Hypervisor) mode is not available on the Purwa IoT EVK platform, as indicated by the kernel message kvm [1]: HYP mode not available at boot time, preventing creation of /dev/kvm.
  3. Possible fix: This is a platform hardware limitation, not a regression. The Purwa IoT EVK does not support ARM virtualization extensions (EL2/HYP mode). Either: (1) skip KVM tests on this platform by updating the LAVA test suite configuration to exclude virtualization tests for purwa-evk, or (2) run KVM tests only on platforms with virtualization support (e.g., boards with Cortex-A cores that support EL2).
  4. Detail analysis attachment: failed_case_job208076_6_detailed.md
Job 208077 | SoC lemans-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/208077

Failed test cases in LAVA job 208077 (SoC: lemans-evk).

Case 1: Board Hang — System stopped dead during UFS driver initialization
  1. Failed case: Board Hang — System stopped dead during UFS driver initialization
  2. Root cause: Complete system hang at kernel timestamp [6.779237] during ufshcd-qcom driver probe on lemans-evk; last message "ufshcd_populate_vreg: Unable to find vccq2-supply regulator, assuming enabled" followed by total loss of forward progress; no panic/oops/crash signature; LAVA login-action timed out after 200s across 3 retry attempts; system required external power-off to recover.
  3. Possible fix: This is a pre-existing platform/board issue unrelated to the PR (BAM DMA changes do not affect UFS on lemans-evk). Recommended actions: (1) Check if lemans-evk UFS device tree has correct regulator bindings (vdd-hba-supply, vccq2-supply); (2) Verify UFS PHY and controller power sequencing in device tree; (3) Enable UFS debug logs (ufshcd_qcom.dyndbg=+p) and collect full dmesg to identify where exactly the driver hangs; (4) Check if this is a known lemans-evk UFS initialization race or timeout issue in the platform BSP; (5) Re-trigger the CI job to confirm reproducibility — if intermittent, may be a hardware/board-specific issue.
  4. Detail analysis attachment: failed_case_job208077_1_detailed.md
Case 2: auto-login-action (kernel boot hang — system stopped producing console output)
  1. Failed case: auto-login-action (kernel boot hang — system stopped producing console output)
  2. Root cause: Kernel booted successfully (Linux version banner present at timestamp 0.000000) but stopped producing console output at timestamp 6.779237 seconds during UFS/device initialization, likely due to a hang in the BAM DMA driver's new SCM (Secure Call Manager) assignment code path introduced by PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838. The system never reached the login prompt, causing all three auto-login-action attempts to timeout after 200/200/185 seconds respectively.
  3. Possible fix: The PR introduces SCM memory assignment for BAM DMA descriptor FIFOs (patch 08/13) with device tree changes for Shikra SoC (patch 13/13). However, the generic driver code may be incorrectly triggering SCM calls on Le Mans EVK where this functionality is not needed or not properly configured. Verify that the qcom,vmid property is not present in the Le Mans device tree, and if the SCM call is being made anyway, add platform-specific guards or check SCM availability before making the call. The bam_parse_vmids() function should return early with num_vmids = 0 for Le Mans, preventing any SCM calls. Debug by adding printk statements in bam_parse_vmids(), bam_assign_fifo(), and qcom_scm_assign_mem() to identify where the hang occurs.
  4. Detail analysis attachment: failed_case_job208077_2_detailed.md
Case 3: minimal-boot
  1. Failed case: minimal-boot
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Revert Patch 02/13 (dmaengine: qcom: bam_dma: use lock guards) and re-test; if hang persists, bisect patches 01-04 to isolate the exact change causing the hang. Review all scoped_guard(spinlock_irqsave, ...) conversions in bam_free_chan() and other BAM DMA functions to ensure no early-return paths or nested locking scenarios were broken by the automatic scope-based unlocking.
  4. Detail analysis attachment: failed_case_job208077_3_detailed.md
Case 4: ** LAVA Job Timeout — Login Action Timeout (Infrastructure)
  1. Failed case: ** LAVA Job Timeout — Login Action Timeout (Infrastructure)
  2. Root cause: ** LAVA login-action timed out after 200 seconds (3 retries exhausted). Kernel booted successfully and reached userspace (systemd-udevd started at ~4.3s), but login prompt never appeared on serial console within the configured timeout window. This is a LAVA job configuration or board-specific infrastructure issue, not a kernel crash or hang.
  3. Possible fix: Re-trigger the CI job; if the issue recurs, increase the login-action timeout from 200s to 300s and the minimal-boot block timeout from ~10min to 15min in the LAVA job definition for lemans-evk. Alternatively, investigate whether the serial console is correctly configured for this board and whether systemd services are hanging during boot (check for services with Type=idle or dependencies on unavailable hardware).
  4. Detail analysis attachment: failed_case_job208077_4_detailed.md
Job 208078 | SoC monaco-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/208078

Failed test cases in LAVA job 208078 (SoC: monaco-evk).

Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Add the missing WiFi firmware file ath11k/WCN6855/hw2.1/nfa765/amss.bin to the rootfs firmware directory (/lib/firmware/). Verify the firmware package for WCN6855 hw2.1 nfa765 variant is included in the Yocto build recipe or firmware deployment manifest for monaco-evk. This is a pre-existing infrastructure/configuration issue unrelated to the PR (which modifies BAM DMA driver only). Re-run the test after adding the firmware to confirm ath11k_pci probe succeeds.
  4. Detail analysis attachment: failed_case_job208078_1_detailed.md
Case 2: Driver Probe Failure — ath11k_pci WiFi driver
  1. Failed case: Driver Probe Failure — ath11k_pci WiFi driver
  2. Root cause: ath11k_pci driver probe failed with error -110 (ETIMEDOUT) on Monaco EVK because the required WiFi firmware file ath11k/WCN6855/hw2.1/nfa765/amss.bin is missing from the rootfs. The MHI (Modem Host Interface) firmware load failed with error -2 (ENOENT), causing the MHI power-up sequence to timeout, which cascaded into the driver probe failure. Monaco EVK uses WCN6855 hw2.1 WiFi chip over PCIe, and the board-specific firmware subdirectory "nfa765" is not populated in the test image.
  3. Possible fix: Add the missing WCN6855 firmware files for Monaco EVK to the Yocto image recipe. Specifically, ensure linux-firmware-ath11k or equivalent package includes the ath11k/WCN6855/hw2.1/nfa765/ directory with amss.bin and related firmware files. Alternatively, if "nfa765" is not the correct board variant for Monaco EVK, update the device tree or driver board-data configuration to use the correct firmware path (e.g., the generic ath11k/WCN6855/hw2.1/ path without board-specific subdirectory).
  4. Detail analysis attachment: failed_case_job208078_2_detailed.md
Case 3: WiFi_OnOff — ath11k_pci Driver Probe Failure (Firmware Dependency)
  1. Failed case: WiFi_OnOff — ath11k_pci Driver Probe Failure (Firmware Dependency)
  2. Root cause: ath11k_pci driver probe failed with -ETIMEDOUT because the required WCN6855 WiFi firmware file (ath11k/WCN6855/hw2.1/nfa765/amss.bin) is missing from the rootfs. MHI firmware load failed with -ENOENT (file not found) at line 3687, preventing the WiFi device from powering up. This is a pre-existing infrastructure issue unrelated to PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 (which modifies BAM DMA, scatterlist, and Shikra DT only).
  3. Possible fix: Add the missing WCN6855 firmware file to the test image rootfs. Install linux-firmware-ath11k package or manually copy ath11k/WCN6855/hw2.1/nfa765/amss.bin and associated board files to /lib/firmware/ath11k/WCN6855/hw2.1/nfa765/ in the rootfs build recipe (Yocto layer or equivalent). Verify firmware presence before flashing to monaco-evk.
  4. Detail analysis attachment: failed_case_job208078_3_detailed.md
Case 4: 0_qcom-next-ci-premerge-tests (LAVA Infrastructure Issue)
  1. Failed case: 0_qcom-next-ci-premerge-tests (LAVA Infrastructure Issue)
  2. Root cause: LAVA dispatcher incorrectly marked a completed test run as "unfinished" despite the test runner exiting normally with <LAVA_TEST_RUNNER EXIT> and all individual test cases completing (pass or fail). The error message "Marking unfinished test run as failed" was triggered by LAVA's internal state tracking, not by any kernel crash, hang, or test framework failure.
  3. Possible fix: Re-trigger the LAVA job. This is a known LAVA dispatcher race condition where the test completion signal is not properly synchronized with the test result aggregation logic. If the issue persists across multiple re-runs, escalate to the LAVA infrastructure team to investigate the dispatcher's test completion detection logic for the lava-test-shell action.
  4. Detail analysis attachment: failed_case_job208078_4_detailed.md
Job 208079 | SoC shikra-iqs-evk

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/208079

Failed test cases in LAVA job 208079 (SoC: shikra-iqs-evk).

Case 1: GIC
  1. Failed case: GIC
  2. Root cause: Test script bug — the GIC test is hardcoded to validate 8 CPUs (0-7) but shikra-iqs-evk has only 4 CPUs (0-3); when the script attempts to parse timer interrupt counts for non-existent CPUs 4-7, it encounters non-numeric fields ("GICv3", "Level", "arch_timer") from the /proc/interrupts header and fails with bash integer comparison errors at line 75.
  3. Possible fix: Update the GIC test script (Runner/suites/Kernel/Baseport/GIC/run.sh) to dynamically detect the number of online CPUs from /sys/devices/system/cpu/online instead of hardcoding CPU count, and iterate only over CPUs that actually exist on the target platform.
  4. Detail analysis attachment: failed_case_job208079_1_detailed.md
Case 2: ** Probe_Failure_Check
  1. Failed case: ** Probe_Failure_Check
  2. Root cause: ** The test detected pre-existing probe failures unrelated to PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 changes: coresight-etm4x ETM probe failures (error -22 / EINVAL) due to missing or misconfigured device tree properties, cpufreq-dt probe failure (error -17 / EEXIST) indicating the driver is already registered, and benign regulatory.db firmware load failure (error -2 / ENOENT) which is expected when the file is not present in the rootfs.
  3. Possible fix: These are pre-existing platform issues not introduced by this PR. The coresight-etm4x failures require device tree fixes for the ETM nodes (likely missing or incorrect clock/power-domain properties). The cpufreq-dt failure is benign (driver already loaded). The regulatory.db firmware failure is cosmetic. PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 should be approved as these failures existed before the BAM DMA refactoring changes.
  4. Detail analysis attachment: failed_case_job208079_2_detailed.md
Case 3: USBHost
  1. Failed case: USBHost
  2. Root cause: Test failed because no USB devices were enumerated on the shikra-iqs-evk board at test runtime; USB core driver initialized successfully during boot (usbcore registered at [2.715793]), USB PHY drivers loaded (phy_qcom_qusb2, phy_qcom_qmp_usbc), and USB controller device tree node present (4e00000.usb), but no physical USB devices were detected when the test script ran lsusb or equivalent enumeration command.
  3. Possible fix: This is a test environment/hardware configuration issue, not a kernel regression introduced by PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 (which modifies only DMA engine bam_dma driver, unrelated to USB); verify that a USB device (keyboard, mouse, flash drive, or hub) is physically connected to the shikra-iqs-evk board's USB host port before running the test suite, or mark USBHost as SKIP when no USB peripherals are available in the lab setup.
  4. Detail analysis attachment: failed_case_job208079_3_detailed.md
Case 4: BT_SCAN (suppressed as known benign — BT_ON_OFF passed)
  1. Failed case: BT_SCAN (suppressed as known benign — BT_ON_OFF passed)
  2. Root cause: Test environment lacks discoverable Bluetooth devices within range during the 3-attempt scan window; Bluetooth stack is functional (hci0 powered on/off successfully, firmware loaded, controller operational).
  3. Possible fix: This is a known benign false positive per LAVA suppression Rule 3. No kernel fix required. If BT_SCAN must pass in CI, ensure at least one discoverable BT device (beacon/phone/dongle) is present within RF range of the shikra-iqs-evk board during test execution, or adjust test expectations to allow SKIP when no devices are in range.
  4. Detail analysis attachment: failed_case_job208079_4_detailed.md
Case 5: KVM_Driver
  1. Failed case: KVM_Driver
  2. Root cause: CONFIG_KVM is enabled but /dev/kvm device node is not created because the KVM driver failed to initialize on the Shikra IQS EVK platform. This is NOT a kernel crash — the test correctly detected that KVM functionality is unavailable. The subsequent kernel crash in qcom_hwrng (synchronous external abort at qcom_rng_read+0xc4) is a separate, unrelated hardware access failure that occurred during the qcom_hwrng test execution.
  3. Possible fix: For KVM_Driver failure: Investigate why KVM driver initialization fails on Shikra despite CONFIG_KVM=y — check dmesg for KVM probe errors, verify ARM virtualization extensions are enabled in firmware/bootloader, and confirm the platform supports EL2/hypervisor mode. For the qcom_hwrng crash: This is a critical hardware access bug where the qcom_rng driver attempts to read from an unmapped or powered-off PRNG hardware register, triggering a synchronous external abort. The fix requires ensuring the PRNG hardware block is properly clocked, powered, and mapped before driver access, or adding proper error handling for hardware unavailability.
  4. Detail analysis attachment: failed_case_job208079_5_detailed.md
Case 6: KVM_EL2_DTB
  1. Failed case: KVM_EL2_DTB
  2. Root cause: KVM hypervisor (EL2) mode is not available on the Shikra IQS EVK platform, preventing KVM initialization and /dev/kvm device node creation (kernel message: "kvm [1]: HYP mode not available" at boot time [3.305969]).
  3. Possible fix: This is a platform/firmware limitation, not a kernel regression. The Shikra IQS EVK does not support KVM/virtualization in the current firmware/bootloader configuration. To enable KVM: (1) verify the bootloader is configured to boot the kernel in EL2 (hypervisor) mode rather than EL1, (2) check if the firmware/TrustZone configuration allows EL2 access, or (3) skip KVM tests on this platform as they are not applicable without EL2 support.
  4. Detail analysis attachment: failed_case_job208079_6_detailed.md
Case 7: KVM_Infra — Platform Virtualization Not Available
  1. Failed case: KVM_Infra — Platform Virtualization Not Available
  2. Root cause: KVM initialization failed during boot with "HYP mode not available" because the Shikra IQS EVK platform does not have ARM EL2 (Hypervisor mode) enabled or accessible, preventing /dev/kvm device creation. This is a platform/firmware limitation, not a kernel bug.
  3. Possible fix: This is NOT a PR-introduced regression (PR only touches BAM DMA drivers). To enable KVM on this platform: (1) verify the SoC supports ARM virtualization extensions, (2) ensure bootloader/firmware enables EL2 for the kernel, (3) check secure firmware policy allows virtualization, (4) if platform fundamentally doesn't support virtualization, mark KVM tests as expected-fail for this board in CI configuration.
  4. Detail analysis attachment: failed_case_job208079_7_detailed.md
Case 8: Kernel Crash — synchronous external abort in qcom_rng driver
  1. Failed case: Kernel Crash — synchronous external abort in qcom_rng driver
  2. Root cause: The qcom_hwrng test triggered a synchronous external abort (hardware fault) at PC qcom_rng_read+0xc4 when reading from the hardware RNG device, followed by cascading EFI runtime service paging faults during panic handling, ultimately causing a kernel panic. This is a pre-existing hardware/firmware/driver issue on the shikra-iqs-evk platform, NOT introduced by PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 (which only modifies BAM DMA, scatterlist, qcom_bam_dmux, remoteproc, and device tree — none of which touch qcom_rng).
  3. Possible fix: This failure is NOT caused by the PR under test. The qcom_rng driver crash is a pre-existing platform issue. Re-trigger the CI job to confirm reproducibility. If the crash recurs consistently on shikra-iqs-evk, investigate the qcom_rng driver hardware access path and firmware/clock/power dependencies for this SoC. The PR itself should not be blocked by this unrelated failure.
  4. Detail analysis attachment: failed_case_job208079_8_detailed.md
Case 9: Kernel Crash — Synchronous External Abort in qcom_rng driver
  1. Failed case: Kernel Crash — Synchronous External Abort in qcom_rng driver
  2. Root cause: Hardware access fault (synchronous external abort 0x96000010) in qcom_rng_read+0xc4 during MMIO read from RNG hardware registers; system panicked and rebooted into ramdump/EDL mode, causing LAVA test timeout.
  3. Possible fix: This is a pre-existing hardware/driver issue unrelated to PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 (which only touches bam_dma). The qcom_rng driver attempted to read from an unmapped or inaccessible MMIO address. Verify RNG device tree node has correct reg property, check if RNG clocks/power domains are enabled before access, and add proper error handling for MMIO faults in qcom_rng driver.
  4. Detail analysis attachment: failed_case_job208079_9_detailed.md
Case 10: ** Kernel Crash — Synchronous External Abort in qcom_rng Driver
  1. Failed case: ** Kernel Crash — Synchronous External Abort in qcom_rng Driver
  2. Root cause: ** Hardware memory access fault (synchronous external abort 0x96000010) in qcom_rng_read+0xc4/0x228 at PC b940035c (MMIO read instruction) during qcom_hwrng test execution. The driver attempted to read from an MMIO register that either: (1) is not mapped/powered, (2) belongs to a clock-gated/power-gated hardware block, or (3) has incorrect DT address mapping for shikra-iqs-evk. The lava-test-retry timeout is a symptom — the board entered EDL (Emergency Download) mode after the crash and never recovered, causing LAVA to time out after 2400 seconds.
  3. Possible fix: Investigate qcom_rng DT node for shikra-iqs-evk: verify MMIO base address matches hardware documentation, confirm clocks/clock-names and power-domains properties are correct and that the RNG hardware block is powered and clocked before driver access. If the hardware is not present or not functional on shikra-iqs-evk, disable the qcom_rng device node in the shikra DTS (status = "disabled";) or mark the qcom_hwrng test as board-specific skip. Short-term mitigation: skip qcom_hwrng test on shikra-iqs-evk until DT/hardware configuration is validated.
  4. Detail analysis attachment: failed_case_job208079_10_detailed.md
Case 11: Kernel Crash — Synchronous External Abort in qcom_rng driver
  1. Failed case: Kernel Crash — Synchronous External Abort in qcom_rng driver
  2. Root cause: Hardware access fault in qcom_rng_read() at offset +0xc4 when reading from MMIO register (instruction b940035c = ldr w28, [x26]). The qcom_rng driver attempted to read from a hardware RNG register that is either not mapped, not clocked, or not accessible in the current power/clock state on shikra-iqs-evk, triggering a synchronous external abort and subsequent kernel panic.
  3. Possible fix: Verify qcom_rng device tree node for shikra (QCM6490) includes correct reg base, clocks, and power domain bindings. Check if RNG hardware block requires explicit clock/power enablement before register access. Add runtime PM calls or clock enable in qcom_rng probe/read path if missing. If hardware is not present or not functional on shikra-iqs-evk, mark the qcom_rng device node as status = "disabled" in the shikra device tree.
  4. Detail analysis attachment: failed_case_job208079_11_detailed.md
Job 208080 | SoC qcs6490-rb3gen2

LAVA job: https://lava-oss.qualcomm.com/scheduler/job/208080

Failed test cases in LAVA job 208080 (SoC: qcs6490-rb3gen2).

Case 1: Probe_Failure_Check
  1. Failed case: Probe_Failure_Check
  2. Root cause: Two pre-existing firmware load failures detected by the test: (1) cfg80211 regulatory database firmware regulatory.db missing (known benign on embedded systems with compiled-in regulatory data), and (2) Renesas USB 3.0 PCIe controller firmware renesas_usb_fw.mem missing from rootfs (board-specific hardware dependency for rb3gen2's optional USB controller).
  3. Possible fix: These are not PR-introduced regressions. For the Renesas USB controller: add linux-firmware-renesas package to the rootfs or disable the xhci-pci-renesas driver if the USB controller is not used. For regulatory.db: either add wireless-regdb package or ignore (benign if regulatory domain is compiled-in via CONFIG_CFG80211_INTERNAL_REGDB).
  4. Detail analysis attachment: failed_case_job208080_1_detailed.md
Case 2: USBHost
  1. Failed case: USBHost
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: Add the Renesas USB firmware package (linux-firmware-renesas or equivalent) to the rootfs image build recipe, rebuild the image, and reflash the board. Alternatively, mark USBHost as expected-fail for qcs6490-rb3gen2 boards with Renesas xHCI controllers until firmware is included.
  4. Detail analysis attachment: failed_case_job208080_2_detailed.md
Case 3: KVM_Driver
  1. Failed case: KVM_Driver
  2. Root cause: KVM cannot initialize because the qcs6490-rb3gen2 platform is running under the Gunyah hypervisor at EL1 (guest mode), not at EL2 (hypervisor mode). The kernel message "kvm [1]: HYP mode not available" confirms that KVM detected it lacks EL2 access required for nested virtualization, which Gunyah does not expose to the primary VM in this configuration.
  3. Possible fix: Skip the KVM_Driver test on Gunyah-based platforms by adding a hypervisor detection gate in the test script: if dmesg | grep -qi "Hypervisor.*boot"; then echo "[SKIP] nested virtualization not supported"; exit 0; fi. Alternatively, disable CONFIG_KVM in the kernel config for platforms that will always run under Gunyah.
  4. Detail analysis attachment: failed_case_job208080_3_detailed.md
Case 4: KVM_EL2_DTB
  1. Failed case: KVM_EL2_DTB
  2. Root cause: Could not be determined confidently from available logs.
  3. Possible fix: This is NOT a PR-introduced regression. PR dt-bindings/dmaengine/net: qcom: BAM XPU violation fixes for Shikra #838 only modifies the BAM DMA driver (drivers/dma/qcom/bam_dma.c) and has no relation to KVM or virtualization. The failure is a pre-existing platform limitation on qcs6490-rb3gen2. To resolve: (1) Update the LAVA CI test suite to skip KVM tests on platforms that boot at EL1 by adding a capability check in the test runner, OR (2) If KVM support is required, reconfigure the bootloader/firmware to boot the kernel at EL2 (requires bootloader source changes and reflashing, outside kernel scope). No kernel code changes are required.
  4. Detail analysis attachment: failed_case_job208080_4_detailed.md
Case 5: KVM_Infra
  1. Failed case: KVM_Infra
  2. Root cause: KVM cannot initialize on qcs6490-rb3gen2 because the Gunyah hypervisor (gunyah-1cb9db980) has taken control of EL2/HYP mode, and KVM requires exclusive EL2 access to create /dev/kvm; kernel log shows "kvm [1]: HYP mode not available" at boot.
  3. Possible fix: This is a platform configuration issue, not a PR regression. To enable KVM on this board, either: (1) disable Gunyah hypervisor in the firmware/bootloader configuration to free EL2 for KVM, or (2) mark KVM tests as expected-fail for qcs6490-rb3gen2 in the LAVA job definition since this SoC is configured to run Gunyah for virtualization instead of KVM.
  4. Detail analysis attachment: failed_case_job208080_5_detailed.md
Case 6: 0_qcom-next-ci-premerge-tests
  1. Failed case: 0_qcom-next-ci-premerge-tests
  2. Root cause: Test suite failure due to KVM tests running on qcs6490-rb3gen2 hardware that does not support EL2/HYP mode (virtualization). Kernel message at boot: "kvm [1]: HYP mode not available" indicates the platform lacks hypervisor support, causing all three KVM tests (KVM_Driver, KVM_EL2_DTB, KVM_Infra) to fail with "/dev/kvm is not available".
  3. Possible fix: Remove KVM tests from the test suite for qcs6490-rb3gen2 platform, or configure the LAVA job definition to skip virtualization tests on platforms without EL2 support. This is a test infrastructure configuration issue, not a kernel bug — the KVM driver is functioning correctly by detecting and reporting the absence of HYP mode support.
  4. Detail analysis attachment: failed_case_job208080_6_detailed.md

Sign up for freeto 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.

7 participants

@quic-vishsant@qlijarvis@qcomlnxci@sgaud-quic@Komal-Bajaj@quic-deesin@andy-shev