Skip to content

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

Open
Vishnu Santhosh (quic-vishsant) wants to merge 12 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 12 commits into
qualcomm-linux:qcom-6.18.yfrom
quic-vishsant:for-shikra-bam-xpu-violation-2-0

Conversation

@quic-vishsant

@quic-vishsant Vishnu 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

Verdict Issues Detailed Report
⚠️ 0 Full 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

# Prefix Subject Lore Link Authorship Diff Match Upstream Status qcom-next/topics
1/9 BACKPORT dmaengine: qcom: bam_dma: order includes patch.msgid.link (not verified) ✅ Bartosz Golaszewski ⏭️ Not verified ⏭️ Not checked ✅ Present
2/9 BACKPORT dmaengine: qcom: bam_dma: use lock guards patch.msgid.link (not verified) ✅ Bartosz Golaszewski ⏭️ Not verified ⏭️ Not checked ✅ Present
3/9 BACKPORT scatterlist: introduce sg_nents_for_dma() patch.msgid.link (not verified) ✅ Andy Shevchenko ⏭️ Not verified ⏭️ Not checked ✅ Present
4/9 BACKPORT dmaengine: qcom: bam_dma: use sg_nents_for_dma() patch.msgid.link (not verified) ✅ Andy Shevchenko ⏭️ Not verified ⏭️ Not checked ✅ Present
5/9 FROMLIST dt-bindings: net: qcom,bam-dmux: Add qcom,shikra-bam-dmux ✅ Verified ✅ Vishnu Santhosh ✅ Faithful ⏳ Under review ✅ Present (topics)
6/9 FROMLIST net: wwan: qcom_bam_dmux: Alloc RX buffers as single coherent block ✅ Verified ✅ Vishnu Santhosh ✅ Faithful ⏳ Under review ✅ Present (topics)
7/9 FROMLIST dt-bindings: dma: qcom,bam-dma: Add optional qcom,vmid ✅ Verified ✅ Vishnu Santhosh ✅ Faithful ⏳ Under review ✅ Present (topics)
8/9 FROMLIST dmaengine: qcom: bam_dma: SCM-assign descriptor FIFOs ✅ Verified ✅ Vishnu Santhosh ✅ Faithful ⏳ Under review ✅ Present (topics)
9/9 FROMLIST arm64: 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):

File Status Notes
Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml ✅ Identical Commit 5: adds qcom,shikra-bam-dmux compatible
drivers/net/wwan/Kconfig ✅ Identical Commit 6: adds select QCOM_SCM
drivers/net/wwan/qcom_bam_dmux.c ✅ Identical Commit 6: coherent RX buffer allocation logic
Documentation/devicetree/bindings/dma/qcom,bam-dma.yaml ✅ Identical Commit 7: adds qcom,vmid property + qcom,shikra-bam-dma compatible
drivers/dma/qcom/bam_dma.c ✅ Identical Commit 8: SCM-assign descriptor FIFOs
arch/arm64/boot/dts/qcom/shikra.dtsi ✅ Identical Commit 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

Commit Subject qcom-next topics Final
1/9 [PATCH 1/9] BACKPORT: dmaengine: qcom: bam_dma: order includes present - exact patch-id match at 892f2bb skipped - not checked because qcom-next already contains the change present
2/9 [PATCH 2/9] BACKPORT: dmaengine: qcom: bam_dma: use lock guards present - exact patch-id match at 20f5818 skipped - not checked because qcom-next already contains the change present
3/9 [PATCH 3/9] BACKPORT: scatterlist: introduce sg_nents_for_dma() present - exact patch-id match at 80c70bf skipped - not checked because qcom-next already contains the change present
4/9 [PATCH 4/9] BACKPORT: dmaengine: qcom: bam_dma: use present - exact patch-id match at 107fdf0 skipped - not checked because qcom-next already contains the change present
5/9 [PATCH 5/9] FROMLIST: dt-bindings: net: qcom,bam-dmux: Add missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at d50930bced20fc075b02c87c0fee7481cbf502b3 present
6/9 [PATCH 6/9] FROMLIST: net: wwan: qcom_bam_dmux: Alloc RX buffers as a partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at 5f0bfd25ce72edc317204f66f7ed79cab9263e4e present
7/9 [PATCH 7/9] FROMLIST: dt-bindings: dma: qcom,bam-dma: Add optional partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at 74de4eaa43b92d6f7a459c098b14a2bc9a3acaa9 present
8/9 [PATCH 8/9] FROMLIST: dmaengine: qcom: bam_dma: SCM-assign descriptor partial - subject or partial tree evidence found, but full change was not verified present - all checked added lines are present present
9/9 [PATCH 9/9] FROMLIST: arm64: dts: qcom: shikra: Add qcom,vmid to missing - no subject, patch-id, or full tree-content match found present - all checked added lines are present present

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

Checker Result Summary
Checker Result Summary
checkpatch All 9 commits passed
dt-binding-check Both bindings validated successfully
dtb-check No new DTB validation errors
sparse-check No sparse warnings
check-uapi-headers No UAPI changes detected
check-patch-compliance 3 commits have content mismatch with upstream
tag-check All 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

Checker Result Summary
checkpatch All 9 commits passed
dt-binding-check Both bindings validated successfully
dtb-check No new DTB validation errors
sparse-check No sparse warnings
check-uapi-headers No UAPI changes detected
check-patch-compliance 3 commits have content mismatch with upstream
tag-check All 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.

Bartosz Golaszewski and others added 12 commits July 21, 2026 13:57
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>
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
Vishnu Santhosh (quic-vishsant) force-pushed the for-shikra-bam-xpu-violation-2-0 branch from 6754ebc to 2546101 Compare July 21, 2026 15:26
@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

Verdict Issues Detailed Report
⚠️ 0 Full 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

Check Status Note
Lore link present https://lore.kernel.org/r/20251106-qcom-bam-dma-refactor-v1-1-0e2baaf3d81a@linaro.org
Subject matches upstream Prefix added: UPSTREAM:
Body preserves rationale Identical
Authorship preserved From: Bartosz Golaszewski bartosz.golaszewski@linaro.org matches lore
Reviewed-by tags ⚠️ PR has only Dmitry Baryshkov; lore thread also has Bjorn Andersson
Diff matches lore Identical code changes (context line numbers differ due to tree state)
Upstream status Decision Pending - Reviewed-by present, no merge confirmation yet
qcom-next/topics presence Present in qcom-next as 892f2bb

Verdict: ✅ PASS


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

Check Status Note
Lore link present https://lore.kernel.org/r/20251106-qcom-bam-dma-refactor-v1-2-0e2baaf3d81a@linaro.org
Subject matches upstream Prefix added: UPSTREAM:
Body preserves rationale Identical
Authorship preserved From: Bartosz Golaszewski bartosz.golaszewski@linaro.org matches lore
Reviewed-by tags PR missing Reviewed-by tags present in lore (Dmitry Baryshkov, Bjorn Andersson)
Diff matches lore Identical code changes
Upstream status Decision Pending - Reviewed-by present, no merge confirmation yet
qcom-next/topics presence Present in qcom-next as 20f5818

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


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

Check Status Note
Lore link present https://lore.kernel.org/r/20260108105619.3513561-2-andriy.shevchenko@linux.intel.com
Subject matches upstream Prefix added: UPSTREAM:
Body preserves rationale Identical
Authorship preserved From: Andy Shevchenko andriy.shevchenko@linux.intel.com matches lore
Reviewed-by tags PR missing Reviewed-by: Bjorn Andersson present in lore
Diff matches lore Identical code changes
Upstream status Decision Pending - Reviewed-by present, no merge confirmation yet
qcom-next/topics presence Present 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()

Check Status Note
Lore link present https://lore.kernel.org/r/20260108105619.3513561-11-andriy.shevchenko@linux.intel.com
Subject matches upstream Prefix added: UPSTREAM: (subject truncated in patch header)
Body preserves rationale Identical
Authorship preserved From: Andy Shevchenko andriy.shevchenko@linux.intel.com matches lore
Reviewed-by tags PR missing Reviewed-by: Bjorn Andersson present in lore
Diff matches lore Identical code changes
Upstream status Decision Pending - Reviewed-by present, no merge confirmation yet
qcom-next/topics presence Present 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

Check Status Note
Lore link present https://lore.kernel.org/r/20260714-qcom-bam-dmux-vmid-ext-v1-1-3f29da7cca76@oss.qualcomm.com
Subject matches upstream Prefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationale Identical
Authorship preserved FROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches lore Identical code changes
Upstream status Decision Pending - no merge or review signals in lore thread
qcom-next/topics presence Present in topics as d50930bced20

Verdict: ✅ PASS


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

Check Status Note
Lore link present https://lore.kernel.org/r/20260714-qcom-bam-dmux-vmid-ext-v1-2-3f29da7cca76@oss.qualcomm.com
Subject matches upstream Prefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationale Identical
Authorship preserved FROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches lore Identical code changes
Upstream status Decision Pending - no merge or review signals in lore thread
qcom-next/topics presence Present in topics as 5f0bfd25ce72

Verdict: ✅ PASS


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

Check Status Note
Lore link present https://lore.kernel.org/r/20260714-qcom-bam-dma-vmid-ext-v1-1-cef87c57b7dc@oss.qualcomm.com
Subject matches upstream Prefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationale Identical
Authorship preserved FROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches lore Identical code changes
Upstream status Decision Pending - no merge or review signals in lore thread
qcom-next/topics presence Present in topics as 74de4eaa43b9

Verdict: ✅ PASS


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

Check Status Note
Lore link present https://lore.kernel.org/r/20260714-qcom-bam-dma-vmid-ext-v1-2-cef87c57b7dc@oss.qualcomm.com
Subject matches upstream Prefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationale Identical
Authorship preserved FROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches lore Identical code changes
Upstream status Decision Pending - no merge or review signals in lore thread
qcom-next/topics presence Present in topics (all added lines verified)

Verdict: ✅ PASS


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

Check Status Note
Lore link present https://lore.kernel.org/r/20260711-qcom-q6v5-pas-bam-dmux-v1-1-1e9231143b79@oss.qualcomm.com
Subject matches upstream Prefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationale Identical
Authorship preserved FROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches lore Identical code changes
Upstream status ACKed - "Applied, thanks!" from maintainer in lore thread
qcom-next/topics presence Present in topics (all added lines verified)

Verdict: ✅ PASS


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

Check Status Note
Lore link present N/A Revert commits do not require lore links
Subject matches pattern Standard revert format
Body explains rationale Clear explanation: v2 moves node placement, reverting v1 to apply v2
Reverts commit Reverts a4a9273
Diff correctness Cleanly removes the v1 BAM-DMUX additions
qcom-next/topics presence MISSING 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

Check Status Note
Lore link present https://lore.kernel.org/r/20260711-qcom-shikra-dts-bam-dmux-v2-1-d5b33ee32138@oss.qualcomm.com
Subject matches upstream Prefix added: FROMLIST:
Body preserves rationale Identical (v2 rationale about node placement)
Authorship preserved FROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches lore Identical code changes (v2 placement under remoteproc)
Upstream status Decision 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

Check Status Note
Lore link present https://lore.kernel.org/r/20260714-b4-qcom-shikra-dts-bam-dmux-vmid-ext-v1-1-5b19da8d7735@oss.qualcomm.com
Subject matches upstream Prefix added: FROMLIST: (subject truncated in patch header)
Body preserves rationale Identical
Authorship preserved FROMLIST: submitter in From: is correct; lore author Signed-off-by present
Diff matches lore Identical code changes
Upstream status Decision Pending - no merge or review signals in lore thread
qcom-next/topics presence Present 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

Commit Subject qcom-next topics Final
1/12 [PATCH 01/12] UPSTREAM: dmaengine: qcom: bam_dma: order includes present - exact patch-id match at 892f2bb skipped - not checked because qcom-next already contains the change present
2/12 [PATCH 02/12] UPSTREAM: dmaengine: qcom: bam_dma: use lock guards present - exact patch-id match at 20f5818 skipped - not checked because qcom-next already contains the change present
3/12 [PATCH 03/12] UPSTREAM: scatterlist: introduce sg_nents_for_dma() present - exact patch-id match at 80c70bf skipped - not checked because qcom-next already contains the change present
4/12 [PATCH 04/12] UPSTREAM: dmaengine: qcom: bam_dma: use present - exact patch-id match at 107fdf0 skipped - not checked because qcom-next already contains the change present
5/12 [PATCH 05/12] FROMLIST: dt-bindings: net: qcom,bam-dmux: Add missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at d50930bced20fc075b02c87c0fee7481cbf502b3 present
6/12 [PATCH 06/12] FROMLIST: net: wwan: qcom_bam_dmux: Alloc RX buffers as partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at 5f0bfd25ce72edc317204f66f7ed79cab9263e4e present
7/12 [PATCH 07/12] FROMLIST: dt-bindings: dma: qcom,bam-dma: Add optional partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at 74de4eaa43b92d6f7a459c098b14a2bc9a3acaa9 present
8/12 [PATCH 08/12] FROMLIST: dmaengine: qcom: bam_dma: SCM-assign partial - subject or partial tree evidence found, but full change was not verified present - all checked added lines are present present
9/12 [PATCH 09/12] FROMLIST: remoteproc: qcom_q6v5_pas: Create platform missing - no subject, patch-id, or full tree-content match found present - all checked added lines are present present
10/12 [PATCH 10/12] Revert "FROMLIST: arm64: dts: qcom: shikra: Add missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
11/12 [PATCH 11/12] FROMLIST: arm64: dts: qcom: shikra: Add BAM-DMUX partial - subject or partial tree evidence found, but full change was not verified partial - subject or partial tree evidence found, but full change was not verified partial
12/12 [PATCH 12/12] FROMLIST: arm64: dts: qcom: shikra: Add qcom,vmid to missing - no subject, patch-id, or full tree-content match found present - all checked added lines are present present

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

Checker Result Summary
Checker Result Summary
checkpatch All commits pass style checks
dt-binding-check Binding schemas valid
dtb-check bam-dmux child node not allowed in remoteproc binding schema
sparse-check No static analysis warnings
check-uapi-headers No UAPI changes
check-patch-compliance 1 prefix failure, 4 content-mismatch warnings
tag-check 1 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

Checker Result Summary
checkpatch All commits pass style checks
dt-binding-check Binding schemas valid
dtb-check bam-dmux child node not allowed in remoteproc binding schema
sparse-check No static analysis warnings
check-uapi-headers No UAPI changes
check-patch-compliance 1 prefix failure, 4 content-mismatch warnings
tag-check 1 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-codec iommus 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 Case hamoa-iot-evk lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants