Skip to content

Register MPM under CPU cluster power domain#832

Open
smankad-oss wants to merge 7 commits into
qualcomm-linux:qcom-6.18.yfrom
smankad-oss:qcom-6.18.y
Open

Register MPM under CPU cluster power domain#832
smankad-oss wants to merge 7 commits into
qualcomm-linux:qcom-6.18.yfrom
smankad-oss:qcom-6.18.y

Conversation

@smankad-oss

Copy link
Copy Markdown

MPM irqchip needs to notify RPM (Resource Power Manager) processor to read
the latest wake up capable interrupts when the CPU cluster is entering the
deepest idle state. This is done by sending IPC interrupt to RPM and is
implemented as .power_off() callback by registering MPM as parent power
domain to CPU cluster.

Such implementation introduces a hard probe dependency between MPM irqchip
and CPU cluster power domains.

Move the RPM notification handling to the GENPD_NOTIFY_PRE_OFF callback and
register MPM under the CPU cluster power domain.

If MPM has not registered with CPU cluster power domain, utilize the CPU PM
notifications to manage RPM communication when the last CPU goes to power
collapse.

Program wakeup timer when CPU cluster goes to LPM.

Add CPU and CPU cluster LPM states for Shikra

Signed-off-by: Sneh Mankad sneh.mankad@oss.qualcomm.com

@qlijarvis

Copy link
Copy Markdown

PR #832 — validate-patch

PR: #832

Verdict Issues Detailed Report
0 Full report

Final Summary

  1. Lore link present: No — no lore.kernel.org links found in any of the 7 commits
  2. Lore link matches PR commits: N/A — no lore links to compare against
  3. Upstream patch status: Not upstream — no evidence of upstream posting or acceptance
  4. PR present in qcom-next/topics: Fail - 2/7 commit(s) are missing from both qcom-next and topics
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #832 - MPM power domain and CPU idle states series (7 commits)
Upstream commit: N/A (no lore.kernel.org links found)
Verdict: ❌ FAIL

Step 1 — Parse the PR and Check for Lore Link

Analysis: Scanned all 7 commits in pr.patch for lore.kernel.org links in commit messages.

Result: No lore.kernel.org links found in any commit message. No Link:, Patch-mainline:, UPSTREAM:, FROMLIST:, BACKPORT:, or other upstream reference tags present.

Commits in PR:

  1. dt-bindings: interrupt-controller: mpm: Document power-domains property
  2. irqchip/irq-qcom-mpm: Register MPM under CPU cluster power domain
  3. irqchip/irq-qcom-mpm: Prepare common access path for timer and pin regs
  4. irqchip/irq-qcom-mpm: Program wakeup timer when CPU cluster goes to LPM
  5. arm64: dts: qcom: sm6375: Make MPM device as part of CPU cluster domain
  6. arm64: dts: qcom: qcm2290: Do not mark MPM as power domain
  7. arm64: dts: qcom: shikra: Add CPU idle states

Lore evidence status: Confirmed by lore_evidence/README.md:

status: no-lore-links
reason: no lore.kernel.org Link tags found in pr.patch

Commit Message

Check Status Note
Subject matches upstream No upstream reference to compare against
Body preserves rationale ⚠️ Commit 2 has detailed rationale; others are brief
Fixes tag present/correct Commit 2 has Fixes: a6199bb514d8
Authorship preserved N/A No upstream author to verify
Backport note (if applicable) N/A Not marked as backport
Vendor prefix No QCLINUX:, PENDING:, or other prefix indicating vendor-only work

Diff

File Status Notes
Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml ⚠️ DT binding change without upstream link
drivers/irqchip/irq-qcom-mpm.c ⚠️ Driver changes (3 commits) without upstream link
arch/arm64/boot/dts/qcom/sm6375.dtsi ⚠️ DTS change without upstream link
arch/arm64/boot/dts/qcom/qcm2290.dtsi ⚠️ DTS change without upstream link
arch/arm64/boot/dts/qcom/shikra.dtsi ⚠️ DTS change without upstream link

Integration Presence Check

From integration_presence_report.md:

Commit qcom-next topics Final Status
1/7 dt-bindings partial missing partial
2/7 irqchip register MPM partial missing partial
3/7 irqchip common path partial missing partial
4/7 irqchip wakeup timer missing missing ❌ missing
5/7 sm6375 dts present skipped ✅ present
6/7 qcm2290 dts missing missing ❌ missing
7/7 shikra dts partial missing partial

Overall: FAIL - 2/7 commits are completely missing from both qcom-next and topics; 4/7 are partial matches only.

Issues

  1. No upstream attribution — All 7 commits lack lore.kernel.org links or vendor prefix tags (QCLINUX:, PENDING:, FROMLIST:, etc.). This violates the tree's commit message policy.

  2. Missing commits in integration branch — Commits 4/7 and 6/7 are not present in qcom-next or any topic branch, yet they are being submitted without PENDING: or QCLINUX: prefix.

  3. Partial matches — Commits 1, 2, 3, and 7 show only "partial" evidence in qcom-next (subject or partial tree match), suggesting the changes may differ from what's already in the tree.

  4. DT binding change without upstream review — Commit 1 modifies a DT binding schema (qcom,mpm.yaml) without a lore link, which typically requires upstream review and maintainer approval.

  5. Inconsistent commit message quality — Commit 2 has a detailed problem statement and solution rationale (good), but commits 1, 3, 4, 5, 6, 7 have minimal descriptions that don't explain the "why" behind the changes.

  6. Missing Co-developed-by or attribution — If this is collaborative work or based on prior patches, no attribution is present.

Verdict

❌ FAIL — Do not merge without correction.

Required actions:

  1. Add upstream attribution — For each commit, add one of:

    • Link: https://lore.kernel.org/r/<message-id> if posted upstream
    • FROMLIST: prefix if posted but not yet merged
    • QCLINUX: prefix if vendor-only (not suitable for upstream)
    • PENDING: prefix if work-in-progress
  2. Reconcile with qcom-next — Investigate why commits 4 and 6 are missing from qcom-next/topics. If they are new, mark them appropriately. If they should already be present, verify the diff content matches.

  3. Improve commit messages — Commits 1, 3, 4, 5, 6, 7 need more detailed rationale explaining the problem being solved and why the solution is correct.

  4. DT binding review — Commit 1 changes a binding schema; ensure it has been reviewed by DT maintainers or mark it as PENDING: if not yet posted.

Final Summary

  1. Lore link present: No — no lore.kernel.org links found in any of the 7 commits
  2. Lore link matches PR commits: N/A — no lore links to compare against
  3. Upstream patch status: Not upstream — no evidence of upstream posting or acceptance
  4. PR present in qcom-next/topics: Fail — 2/7 commits are missing from both qcom-next and topics; 4/7 are partial matches only; overall status FAIL 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: a5cf3debd8c3c660711ad586ad4bb84e9ca42635
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/7 [PATCH 1/7] dt-bindings: interrupt-controller: mpm: Document partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial
2/7 [PATCH 2/7] irqchip/irq-qcom-mpm: Register MPM under CPU cluster partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial
3/7 [PATCH 3/7] irqchip/irq-qcom-mpm: Prepare common access path for partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial
4/7 [PATCH 4/7] irqchip/irq-qcom-mpm: Program wakeup timer when CPU missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
5/7 [PATCH 5/7] arm64: dts: qcom: sm6375: Make MPM device as part of CPU present - all checked added lines are present skipped - not checked because qcom-next already contains the change present
6/7 [PATCH 6/7] arm64: dts: qcom: qcm2290: Do not mark MPM as power missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
7/7 [PATCH 7/7] arm64: dts: qcom: shikra: Add CPU idle states partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial

Final Status

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

@qlijarvis

Copy link
Copy Markdown

PR #832 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch All 7 commits passed
dt-binding-check Binding validation passed
dtb-check 6 shikra DTBs: video-codec iommus property too short
sparse-check No sparse warnings
check-uapi-headers No UAPI changes
check-patch-compliance All 7 commits missing required prefix
tag-check All 7 commits missing subject prefix

Detailed report: Full report

Checker analysis — click to expand

Let me output the report directly:

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #832 - MPM power domain and shikra CPU idle states
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/29482034583

Checker Result Summary
checkpatch All 7 commits passed
dt-binding-check Binding validation passed
dtb-check 6 shikra DTBs: video-codec iommus property too short
sparse-check No sparse warnings
check-uapi-headers No UAPI changes
check-patch-compliance All 7 commits missing required prefix
tag-check All 7 commits missing subject prefix

❌ check-patch-compliance

Root cause: All 7 commits lack the required subject-line prefix (FROMLIST:, UPSTREAM:, BACKPORT:, FROMGIT:).

Failure details:

Checking commit: dt-bindings: interrupt-controller: mpm: Document power-domains property
Commit summary does not start with a required prefix

Checking commit: irqchip/irq-qcom-mpm: Register MPM under CPU cluster power domain
Commit summary does not start with a required prefix

Checking commit: irqchip/irq-qcom-mpm: Prepare common access path for timer and pin regs
Commit summary does not start with a required prefix

Checking commit: irqchip/irq-qcom-mpm: Program wakeup timer when CPU cluster goes to LPM
Commit summary does not start with a required prefix

Checking commit: arm64: dts: qcom: sm6375: Make MPM device as part of CPU cluster domain
Commit summary does not start with a required prefix

Checking commit: arm64: dts: qcom: qcm2290: Do not mark MPM as power domain
Commit summary does not start with a required prefix

Checking commit: arm64: dts: qcom: shikra: Add CPU idle states
Commit summary does not start with a required prefix

Fix: Add the appropriate prefix to each commit subject based on upstream status:

git rebase -i <base_sha>
# For each commit, mark as 'edit', then:
git commit --amend -m "FROMLIST: <original subject>"
# or UPSTREAM:/BACKPORT:/FROMGIT: as appropriate
git rebase --continue

Prefix selection guide:

  • Posted to lore.kernel.org but not merged → FROMLIST:
  • In a maintainer git tree → FROMGIT:
  • Merged into Linus's tree → UPSTREAM:
  • Backported with modifications → BACKPORT:
  • Vendor-only, no upstream → QCLINUX: (note: will still fail this checker)

Reproduce locally:

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

❌ tag-check

Root cause: All 7 commits lack mandatory subject-line prefix tags required for branches other than qcom-next/qcom-next-staging.

Failure details:

Every commit in this PR is missing a required prefix tag at the start of its subject line:

  1. dt-bindings: interrupt-controller: mpm: Document power-domains property
  2. irqchip/irq-qcom-mpm: Register MPM under CPU cluster power domain
  3. irqchip/irq-qcom-mpm: Prepare common access path for timer and pin regs
  4. irqchip/irq-qcom-mpm: Program wakeup timer when CPU cluster goes to LPM
  5. arm64: dts: qcom: sm6375: Make MPM device as part of CPU cluster domain
  6. arm64: dts: qcom: qcm2290: Do not mark MPM as power domain
  7. arm64: dts: qcom: shikra: Add CPU idle states

Fix: Same as check-patch-compliance above - add the appropriate prefix to each commit.

Required prefixes: FROMLIST:, FROMGIT:, UPSTREAM:, BACKPORT:, QCLINUX:, PENDING:, WORKAROUND:

Note: If the target branch is qcom-next or qcom-next-staging, this check does not apply. However, based on the check-patch-compliance failure, the target branch likely requires prefixes.


❌ dtb-check

Root cause: The video-codec@5a00000 node in shikra.dtsi has an iommus property with 3 cells [[51, 1920, 32]] or [[50, 1920, 32]], but the binding expects more cells.

Failure details:

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

Analysis:

This error appears to be a pre-existing issue in shikra.dtsi that is now being exposed by the dtb-check validation. The PR does not modify the video-codec@5a00000 node at all - it only adds:

  • CPU idle states
  • Power domain properties to CPU nodes

The error is flagged as "new" by the checker because:

  1. The PR adds new CPU idle states which may trigger different validation paths
  2. The shikra DTBs may not have been fully validated at the base commit
  3. The checker's base/head diff detected these as new errors

Fix:

The iommus property needs additional cells. Check the qcom,shikra-iris binding to determine the correct cell count. Typically, IOMMU specifiers require 4+ cells depending on the SMMU version.

# Check the binding
cat Documentation/devicetree/bindings/media/qcom,shikra-iris.yaml

# Fix the video-codec node in arch/arm64/boot/dts/qcom/shikra.dtsi
# Example (adjust based on actual binding requirements):
iommus = <&apps_smmu 0x1920 0x20 0x0>;  # Add 4th cell

Reproduce locally:

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

Note: This issue is orthogonal to the main purpose of the PR (MPM power domain and CPU idle states). Consider whether to:

  1. Fix it in this PR (adds scope)
  2. File a separate issue/PR for the video-codec iommus fix
  3. Verify if this is a false positive by checking if the base commit also has this error

Verdict

3 blockers must be fixed before merge:

  1. check-patch-compliance - Add required prefix (FROMLIST:/UPSTREAM:/etc.) to all 7 commit subjects
  2. tag-check - Same fix as above (subject prefix required)
  3. dtb-check - Fix video-codec@5a00000 iommus property in arch/arm64/boot/dts/qcom/shikra.dtsi (or verify this is pre-existing and file separate issue)

Recommended action:

  1. Rebase and add appropriate prefixes to all commits
  2. Investigate the video-codec iommus issue - if pre-existing, consider fixing in a separate PR
  3. Re-run CI after fixes

[/CHECKER_LOG_REPORT]

…ins property

Remove #power-domain-cells property and add power-domains property for
MPM device.

Link: https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-1-3d858df2cbbf@oss.qualcomm.com
Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
…domain

MPM irqchip needs to notify RPM (Resource Power Manager) processor to read
the latest wake up capable interrupts when the CPU cluster is entering the
deepest idle state. This is done by sending IPC interrupt to RPM and is
implemented as .power_off() callback by registering MPM as parent power
domain to CPU cluster.

Such implementation introduces a hard probe dependency between MPM irqchip
and CPU cluster power domains. That is MPM irqchip needs to finish probe
before PSCI power domains are probed. MPM irqchip can be build as module
and can get later inserted where as PSCI power domains is not a module.

For in-built driver cases too PSCI domain gets probed first and later MPM
irqchip leading to failure of CPUidle states.

Detailed flow of the non-working scenario:

psci-cpuidle-domain.c probe
--> dt_idle_pd_init_topology()
    --> of_genpd_add_subdomain()
        --> genpd_get_from_provider()
            --> fails to find parent MPM genPD provider
                --> returns -EPROBE_DEFER.

irq-qcom-mpm.c probe
--> of_genpd_add_provider_simple()
    --> genpd_add_provider()
        --> MPM added as a genPD provider.

Now when psci_cpuidle_probe() is called to probe the CPU idle states, it
tries to map the states to the mentioned power-domains.

But since power domains probe has been deferred, psci_cpuidle_probe() too
will return -EPROBE_DEFER.

commit af5376a ("cpuidle: psci: Transition to the faux device
interface") transitioned cpuidle-psci to a faux device interface.

faux_device_create() calls faux_device_create_with_groups(), which ignores
the probe return value, and destroys the device if dev->driver is not set.

This will lead to psci_cpuidle_probe() not being called again, resulting in
all idle-state devices failing to init in SoCs setting MPM as a parent
power domain to CPU cluster.

cpuidle-psci.c init
--> faux_device_create()
        ...
        --> psci_cpuidle_probe()
            --> psci_idle_init_cpu()
                ...
                --> psci_dt_cpu_init_topology()
                ...
                -> dev_pm_domain_attach_by_name()
                   --> __genpd_dev_pm_attach()
                       --> genpd_get_from_provider()
                           --> fails to find CPU genPD provider
                               --> returns -EPROBE_DEFER
                                   --> return value ignored and device
                                       destroyed

Move the RPM notification handling to the GENPD_NOTIFY_PRE_OFF callback and
register MPM under the CPU cluster power domain.  Use runtime PM to report
the default RPM_SUSPENDED state to genPD so that the CPU cluster power
domain can enter low power mode.

If MPM has not registered with CPU cluster power domain, utilize the CPU PM
notifications to manage RPM communication when the last CPU goes to power
collapse.

Fixes: a6199bb ("irqchip: Add Qualcomm MPM controller driver")
Link: https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-2-3d858df2cbbf@oss.qualcomm.com
Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
…and pin regs

The vMPM layout starts with two timer registers followed by pin register
banks (ENABLE/FALLING/RISING/POLARITY/STATUS), each with reg_stride
number of entries.

Use qcom_mpm_offset() as the common addressing helper for both timer and
pin register accesses based on that layout.

vMPM has MPM_REG_* values represented as contiguous register IDs,
hence replace the macros with enum qcom_mpm_reg and modify the accessor
helpers accordingly.

Link: https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-3-3d858df2cbbf@oss.qualcomm.com
Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
… goes to LPM

The next wakeup timer value needs to be set in MPM timer as the arch timer
interrupt can not wakeup the SoC if after the deepest CPUidle states the
SoC also enters deepest low power state.

To wakeup the SoC in such scenarios the earliest wakeup time is set in MPM
timer and the Resource Power Manager (RPM processor) takes care of setting
the timer in HW.

Add MPM timer programming when CPU cluster enters power collapse.

Link: https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-4-3d858df2cbbf@oss.qualcomm.com
Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
…uster domain

Do not mark MPM device as power domain since it leads to idle-states init
failure because of probe dependencies.

Instead make it as part of CPU cluster power domain to allow RPM
notification when CPU cluster goes to power collapse.

Link: https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-5-3d858df2cbbf@oss.qualcomm.com
Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Do not mark MPM device as power domain since it leads to idle-states init
failure because of probe dependencies.

CPU cluster power domain node is kept disabled and hence CPU cluster will
never power collapse. Do not register MPM under it in this case.

Link: https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-6-3d858df2cbbf@oss.qualcomm.com
Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Add idle states for the  CPUs as well as the whole cluster. This enables
deeper-than-WFI cpuidle.

Add MPM under cluster_pd power domain.

Link: https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-7-3d858df2cbbf@oss.qualcomm.com
Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
@qlijarvis

Copy link
Copy Markdown

PR #832 — validate-patch

PR: #832

Verdict Issues Detailed Report
0 Full report

Final Summary

  1. Lore link present: Yes — all 7 commits have valid lore.kernel.org links to the v1 patch series posted 2026-07-13
  2. Lore link matches PR commits: Yes — diff content is faithful to lore; authorship preserved; commit messages match
  3. Upstream patch status: ⏳ Decision Pending with blocking concerns — irqchip maintainer (Marc Zyngier) raised fundamental objections to binding change (patch 1) and code duplication (patch 4); no acceptance signals present; series requires upstream rework
  4. PR present in qcom-next/topics: Fail - 2/7 commit(s) are missing from both qcom-next and topics
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #832 - Register MPM under CPU cluster power domain to manage RPM notification (7 commits)
Upstream commit: https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-0-3d858df2cbbf@oss.qualcomm.com
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream All 7 commits have FROMLIST: prefix and match lore subjects
Body preserves rationale Commit messages faithfully preserve lore content
Fixes tag present/correct N/A No Fixes tags in this series
Authorship preserved All commits: From: Sneh Mankad <sneh.mankad@oss.qualcomm.com> matches lore
Backport note (if applicable) N/A FROMLIST commits, not backports

Diff

File Status Notes
Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml Commit 1/7: diff matches lore exactly
drivers/irqchip/irq-qcom-mpm.c Commits 2-4: diffs match lore (spot-checked)
arch/arm64/boot/dts/qcom/*.dts Commits 5-7: DTS changes match lore

Issues

Critical upstream review concerns:

  1. Patch 1/7 (dt-bindings) - Marc Zyngier (irqchip maintainer) raised a blocking concern:

    "What makes you think it is OK to change an existing binding in an incompatible way?"

    This is a fundamental objection to changing #power-domain-cells to power-domains in an incompatible manner.

  2. Patch 4/7 (timer programming) - Marc Zyngier raised code quality concerns:

    "Do we really need arch-specific code to be literally copied from arm64's delay.c, without any comment or attempt at making it generic? Specially after having added the same stuff to rpmh-rsc.c 4 years ago? See a pattern here?"

    This indicates code duplication issues and lack of proper abstraction.

  3. Integration status FAIL - Per integration_presence_report.md:

    • Only 1/7 commits fully present in qcom-next
    • 4/7 commits partially present (subject found but content not verified)
    • 2/7 commits completely missing from both qcom-next and topics (commits 4 and 6)

Verdict

Do not merge. This PR has multiple blocking issues:

  1. Upstream maintainer objections - The irqchip maintainer (Marc Zyngier) has raised fundamental concerns about the binding change (patch 1) and code quality (patch 4). These must be resolved upstream before merging.

  2. Missing from integration branches - Commits 4 and 6 are not present in qcom-next or topics, indicating they have not been integrated into the Qualcomm kernel tree.

  3. Series under active review - The lore thread shows ongoing discussion with no acceptance signals (no Reviewed-by, Acked-by, applied, or queued tags from maintainers).

Required actions:

  • Wait for upstream resolution of Marc Zyngier's concerns
  • Address the binding compatibility issue (patch 1)
  • Refactor the duplicated arch-specific code (patch 4)
  • Ensure all commits are present in qcom-next before merging to this tree

Final Summary

  1. Lore link present: Yes — all 7 commits have valid lore.kernel.org links to the v1 patch series posted 2026-07-13
  2. Lore link matches PR commits: Yes — diff content is faithful to lore; authorship preserved; commit messages match
  3. Upstream patch status: ⏳ Decision Pending with blocking concerns — irqchip maintainer (Marc Zyngier) raised fundamental objections to binding change (patch 1) and code duplication (patch 4); no acceptance signals present; series requires upstream rework
  4. PR present in qcom-next/topics: Fail — 2/7 commits (4, 6) completely missing from both qcom-next and topics; 4/7 partial; only 1/7 fully present

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/7 [PATCH 1/7] FROMLIST: dt-bindings: interrupt-controller: mpm: 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
2/7 [PATCH 2/7] FROMLIST: irqchip/irq-qcom-mpm: Register MPM under CPU partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial
3/7 [PATCH 3/7] FROMLIST: irqchip/irq-qcom-mpm: Prepare common access partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial
4/7 [PATCH 4/7] FROMLIST: irqchip/irq-qcom-mpm: Program wakeup timer when missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
5/7 [PATCH 5/7] FROMLIST: arm64: dts: qcom: sm6375: Make MPM device as present - all checked added lines are present skipped - not checked because qcom-next already contains the change present
6/7 [PATCH 6/7] FROMLIST: arm64: dts: qcom: qcm2290: Do not mark MPM as missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
7/7 [PATCH 7/7] FROMLIST: arm64: dts: qcom: shikra: Add CPU idle states partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial

Final Status

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

@qlijarvis

Copy link
Copy Markdown

PR #832 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch 1 warning: line length 109 chars in commit 35c953e
dt-binding-check Build failure: missing labels in shikra-cqm-evk.dts and shikra-cqs-evk.dts
dtb-check Build failure: missing labels in shikra-evk.dtsi and board DTS files
sparse-check Passed
check-uapi-headers Passed (no UAPI changes)
check-patch-compliance Content mismatch in commit 35c953e
tag-check All commits have FROMLIST: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #832 - FROMLIST: arm64: dts: qcom: shikra: Add CPU idle states (7 commits)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/29558816665

Checker Result Summary
checkpatch 1 warning: line length 109 chars in commit 35c953e
dt-binding-check Build failure: missing labels in shikra-cqm-evk.dts and shikra-cqs-evk.dts
dtb-check Build failure: missing labels in shikra-evk.dtsi and board DTS files
sparse-check Passed
check-uapi-headers Passed (no UAPI changes)
check-patch-compliance Content mismatch in commit 35c953e
tag-check All commits have FROMLIST: prefix

❌ checkpatch

Root cause: Line 255 in arch/arm64/boot/dts/qcom/shikra.dtsi exceeds 100 characters.

Failure details:

Commit 35c953e92db5 ("FROMLIST: arm64: dts: qcom: shikra: Add CPU idle states")
WARNING: line length of 109 exceeds 100 columns
#346: FILE: arch/arm64/boot/dts/qcom/shikra.dtsi:255:
+					compatible = "qcom,rpmcc-shikra", "qcom,rpmcc-qcm2290", "qcom,rpmcc";

35c953e92db5b55c0a24f6a7ecdbb52d8800fb8c total: 0 errors, 1 warnings, 0 checks, 3470 lines checked

Fix: Wrap the compatible string property across multiple lines:

compatible = "qcom,rpmcc-shikra",
             "qcom,rpmcc-qcm2290",
             "qcom,rpmcc";

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git a19888edbd0a..35c953e92db5

❌ dt-binding-check

Root cause: Commit 35c953e removes 3163 lines from shikra.dtsi, deleting device node definitions that board DTS files depend on.

Failure details:

Error: ../arch/arm64/boot/dts/qcom/shikra-evk.dtsi:6.1-6 Label or path iris not found
Error: ../arch/arm64/boot/dts/qcom/shikra-evk.dtsi:12.1-6 Label or path psci not found
Error: ../arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts:132.1-13 Label or path audiocorecc not found
Error: ../arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts:136.1-11 Label or path ethernet0 not found
Error: ../arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts:222.1-5 Label or path gpr not found
Error: ../arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts:226.1-5 Label or path gpu not found
[... 25+ more missing labels ...]
FATAL ERROR: Syntax error parsing input tree
make[4]: *** [arch/arm64/boot/dts/qcom/shikra-cqm-evk.dtb] Error 1

The patch removes critical device nodes from shikra.dtsi including:

  • bam_dmux, iris, psci, audiocorecc, ethernet0, gpr, gpu, gpu_zap_shader
  • i2c3, mdss, mdss_dsi0, mdss_dsi0_out, mdss_dsi0_phy, pcie, pcie_port0, pcie_phy
  • qaif_cpu, remoteproc_cdsp, remoteproc_lpaicp, remoteproc_mpss, rxmacro
  • sdhc_2, swr0, swr1, uart8, usb_1, usb_1_dwc3_hs, usb_1_hsphy
  • usb_qmpphy_out, usb_qmpphy, vamacro, wifi

Board files (shikra-cqm-evk.dts, shikra-cqs-evk.dts, shikra-evk.dtsi) reference these labels via &label syntax, causing DTC parse failures.

Fix: This is a fundamental patch structure issue. The commit message states "Add CPU idle states" but the patch removes 3163 lines of device definitions. This appears to be either:

  1. Unintended deletion — the patch should only add idle states, not remove existing device nodes
  2. Missing prerequisite patches — device nodes may have been moved to separate DTSI files in upstream but those patches are not included in this PR
  3. Wrong base — the patch may have been generated against a different tree state

Action required: Review the upstream lore link and verify:

  • Does the upstream patch also remove these 3163 lines?
  • Are there prerequisite patches that move these nodes to separate files?
  • Should this patch be split or rebased?

Reproduce locally:

make -j$(nproc) O=out defconfig
make -j$(nproc) O=out dtbs

❌ dtb-check

Root cause: Same as dt-binding-check — missing device node labels cause DTB compilation to fail before validation can run.

Failure details:

Log Summary: Test failed
Error: ../arch/arm64/boot/dts/qcom/shikra-evk.dtsi:6.1-6 Label or path iris not found
Error: ../arch/arm64/boot/dts/qcom/shikra-evk.dtsi:12.1-6 Label or path psci not found
[... same 30+ missing label errors as dt-binding-check ...]
FATAL ERROR: Syntax error parsing input tree
make[4]: *** [arch/arm64/boot/dts/qcom/shikra-cqm-evk.dtb] Error 1

Fix: Same as dt-binding-check — resolve the missing device node issue.

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 35c953e content differs from the upstream lore patch.

Failure details:

Checking commit: FROMLIST: arm64: dts: qcom: shikra: Add CPU idle states
Change is different from the one mentioned in Link

The commit references:

Link: https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-7-3d858df2cbbf@oss.qualcomm.com

Analysis: The checker detected that the patch content in the PR does not match the upstream lore patch. This could be due to:

  1. Context differences — the PR may be based on a different tree state than upstream
  2. Additional changes — the PR patch may include extra modifications not in the upstream version
  3. Missing hunks — some changes from upstream may be missing

Fix: Fetch the upstream patch and compare:

b4 am --single-message -C -l -3 \
  https://lore.kernel.org/lkml/20260713-b4-shikra_lpm_addition-v1-7-3d858df2cbbf@oss.qualcomm.com \
  -o /tmp/upstream

# Compare the actual diff content
git format-patch -1 35c953e92db5 --stdout > /tmp/pr-patch.diff
diff -u /tmp/upstream/*.mbx /tmp/pr-patch.diff

If the differences are legitimate adaptations (e.g., resolving conflicts with vendor tree), document them in the commit message. If they are unintended, rebase the patch to match upstream exactly.


Verdict

3 critical blockers must be fixed before merge:

  1. DTS build failure — The patch removes 3163 lines from shikra.dtsi, deleting device nodes that board files depend on. This causes fatal DTC parse errors. Root cause analysis required — verify against upstream whether this deletion is intentional and if prerequisite patches are missing.

  2. Content mismatch — The patch content differs from the upstream lore link. Verify the differences are intentional adaptations or rebase to match upstream.

  3. Line length warning — Trivial fix: wrap the 109-character compatible string across multiple lines.

Recommendation: Do not merge until the DTS build failure is resolved. The massive deletion of device nodes suggests either a patch generation error, missing prerequisite patches, or incorrect base tree.

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.

2 participants