Skip to content

Shikra swctrl wake rfc - #1266

Open
linghuiwu (linghuiwu-star) wants to merge 3 commits into
qualcomm-linux:qcom-6.18.yfrom
linghuiwu-star:shikra-swctrl-wake-rfc
Open

linghuiwu (linghuiwu-star) wants to merge 3 commits into
qualcomm-linux:qcom-6.18.yfrom
linghuiwu-star:shikra-swctrl-wake-rfc

Conversation

@linghuiwu-star

Copy link
Copy Markdown

Summary

Add SW_CTRL wake IRQ support for WCN3990-family power sequencing and
enable it on Shikra.

This is submitted as an RFC because the intended hardware model still
needs confirmation. In particular, SW_CTRL may either be an AP wake
source suitable for dev_pm_set_dedicated_wake_irq(), or only require
the Qualcomm TLMM/MPM power-save path to be enabled through a separate
interface.

Background

On Shikra, the WCN3988 SW_CTRL signal is connected to GPIO88 and is
configured as an input.

The Qualcomm downstream implementation enables the TLMM/MPM power-save
wakeup path through msm_gpio_mpm_wake_set(). The upstream kernel does
not provide an equivalent API.

An experimental test patch confirmed that requesting the GPIO88 IRQ
resource changes TLMM_GPIO_INTR_CFG88 from 0x942 to 0x9c2, setting
POWER_SAVE_WAKEUP_ENABLE.
core keeps the IRQ disabled during normal operation and arms it during
system suspend.

Changes

  • Document wakeup-source for the Qualcomm WCN3990 PMU binding.
  • Request swctrl-gpios as a dedicated wake IRQ in pwrseq-qcom-wcn.
  • Select the IRQ level based on the GPIO polarity.
  • Enable the wake source for Shikra.

Testing

  • scripts/checkpatch.pl --strict: no errors or warnings.
  • Verified that the three-patch series applies cleanly to the target
    branch.
  • Experimentally verified, using a separate test patch, that requesting
    the GPIO88 IRQ resource sets POWER_SAVE_WAKEUP_ENABLE.

Testing of this exact series, including system suspend and wake, is still
pending.

Questions

  1. Is SW_CTRL expected to wake the application processor?
  2. Is dev_pm_set_dedicated_wake_irq() the correct abstraction?
  3. Should TLMM expose a separate interface for configuring the
    power-save wakeup path?
  4. Is a level-high IRQ the correct configuration for GPIO88?

Some WCN3990-family designs connect SW_CTRL to a GPIO that can wake the
application processor.

Document wakeup-source to describe this capability on the WCN PMU node.

Signed-off-by: Linghui Wu <linghui.wu@oss.qualcomm.com>
Some WCN3990-family designs route SW_CTRL through a GPIO capable of waking
the application processor. The GPIO IRQ resource also enables the Qualcomm
TLMM power-save wakeup path when WAKEUP_PRESENT is advertised.

When the PMU is marked as a wakeup source, request SW_CTRL as a dedicated
wake IRQ. Keep it disabled during normal operation and let the PM core arm
it for system suspend.

Signed-off-by: Linghui Wu <linghui.wu@oss.qualcomm.com>
The WCN3988 SW_CTRL signal is connected to GPIO88 on the Shikra EVK
variants and can participate in the application processor wakeup path.

Mark the WCN PMU nodes as wakeup sources so the power sequencing driver
configures the SW_CTRL wake IRQ.

Signed-off-by: Linghui Wu <linghui.wu@oss.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@qlijarvis

Copy link
Copy Markdown

PR #1266 — validate-patch

PR: #1266

Verdict Issues Detailed Report
❌ 5 Full report

Final Summary

  1. Lore link present: No - no lore.kernel.org Link: tags found in any of the three commits. Per skill Step 1, this is an immediate FAIL condition.

  2. Lore link matches PR commits: N/A - no lore link to compare against. Cannot verify if PR content matches upstream source.

  3. Upstream patch status: Unknown - without lore links, cannot determine if these patches are:

    • Posted upstream and under review (should use FROMLIST:)
    • Merged upstream (should use UPSTREAM: or BACKPORT:)
    • Vendor-only changes (should use QCLINUX:)
  4. PR present in qcom-next/topics: Fail - 1/3 commit(s) are missing from both qcom-next and topics

Required actions before merge:

  • Add appropriate vendor prefix to all commit subjects (FROMLIST:, UPSTREAM:, BACKPORT:, or QCLINUX:)
  • If posted/merged upstream: add Link: https://lore.kernel.org/r/<message-id> to each commit message
  • Investigate why commits 1/3 and 2/3 are missing/partial in qcom-next - they may need to be merged there first
  • Re-run validation after corrections
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1266 - WCN3990 SW_CTRL wakeup support (3 commits)
Upstream commit: N/A - no lore.kernel.org links found
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream ❌ No upstream lore link to compare against
Body preserves rationale ⚠️ Commit messages are well-structured but lack upstream attribution
Fixes tag present/correct N/A No Fixes tags (not a bug fix)
Authorship preserved ⚠️ Cannot verify - no upstream source to compare
Backport note (if applicable) ❌ No vendor prefix (UPSTREAM/FROMLIST/BACKPORT/QCLINUX) in subject

Diff

File Status Notes
Documentation/devicetree/bindings/regulator/qcom,wcn3990-pmu.yaml ⚠️ Cannot verify against upstream - no lore link
drivers/power/sequencing/pwrseq-qcom-wcn.c ⚠️ Cannot verify against upstream - no lore link
arch/arm64/boot/dts/qcom/shikra-*.dts (3 files) ⚠️ Cannot verify against upstream - no lore link

Issues

Critical:

  1. Missing vendor prefix - All three commits lack the required vendor prefix (UPSTREAM:, FROMLIST:, BACKPORT:, QCLINUX:, etc.) in the subject line. This is mandatory for the Qualcomm kernel tree to indicate the patch's upstream status.

  2. No lore.kernel.org links - None of the three commits contain a Link: tag pointing to lore.kernel.org. Per the skill requirements:

    • If these are posted upstream → add FROMLIST: prefix + Link: https://lore.kernel.org/r/<message-id>
    • If merged upstream → add UPSTREAM: or BACKPORT: prefix + lore link
    • If vendor-only → add QCLINUX: prefix (no lore link required)
  3. Integration presence failure - Per integration_presence_report.md:

    • Commit 1/3 (dt-bindings): missing from both qcom-next and topics
    • Commit 2/3 (driver): partial match in qcom-next (subject found but full change not verified)
    • Commit 3/3 (dts): present in qcom-next

    Overall status: FAIL - 1/3 commits are completely missing from the integration tree.

Authorship:

  • All commits authored by Linghui Wu <linghui.wu@oss.qualcomm.com> with proper Signed-off-by: trailers.
  • Cannot verify if this matches upstream author (no upstream source to compare).

Commit message quality:

  • Commit messages are well-written with clear rationale
  • Proper formatting and structure
  • However, lack of upstream attribution makes it impossible to verify if they preserve upstream rationale

Verdict

Do not merge - This PR fails validation on multiple critical requirements:

  1. Mandatory vendor prefix missing - Add appropriate prefix to all three commits
  2. No upstream attribution - Add Link: tags if posted/merged upstream, or use QCLINUX: if vendor-only
  3. Integration presence failure - Commit 1/3 is missing from both qcom-next and topics branches

Final Summary

  1. Lore link present: No - no lore.kernel.org Link: tags found in any of the three commits. Per skill Step 1, this is an immediate FAIL condition.

  2. Lore link matches PR commits: N/A - no lore link to compare against. Cannot verify if PR content matches upstream source.

  3. Upstream patch status: Unknown - without lore links, cannot determine if these patches are:

    • Posted upstream and under review (should use FROMLIST:)
    • Merged upstream (should use UPSTREAM: or BACKPORT:)
    • Vendor-only changes (should use QCLINUX:)
  4. PR present in qcom-next/topics: Fail - per integration_presence_report.md: 1/3 commits are missing from both qcom-next and topics. Commit 1/3 (dt-bindings) has no match in either branch. Commit 2/3 (driver) shows only partial evidence. Only commit 3/3 (dts) is fully present in qcom-next.

Required actions before merge:

  • Add appropriate vendor prefix to all commit subjects (FROMLIST:, UPSTREAM:, BACKPORT:, or QCLINUX:)
  • If posted/merged upstream: add Link: https://lore.kernel.org/r/<message-id> to each commit message
  • Investigate why commits 1/3 and 2/3 are missing/partial in qcom-next - they may need to be merged there first
  • Re-run validation after corrections

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

Commit Subject qcom-next topics Final
1/3 [PATCH 1/3] dt-bindings: power: sequencing: qcom-wcn: document missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
2/3 [PATCH 2/3] power: sequencing: qcom-wcn: support SW_CTRL wake IRQ 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/3 [PATCH 3/3] arm64: dts: qcom: shikra: enable WCN SW_CTRL wakeup present - all checked added lines are present skipped - not checked because qcom-next already contains the change present

Final Status

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

@qlijarvis

Copy link
Copy Markdown

PR #1266 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ✅ All commits pass style checks
dt-binding-check ✅ Binding validation passed
dtb-check ✅ DTB validation passed
sparse-check ✅ No sparse warnings
check-uapi-headers ✅ No UAPI changes
check-patch-compliance ❌ 3 commits missing required prefix
tag-check ❌ 3 commits missing required prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1266 - WCN power sequencing wakeup support
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/37902900894

Checker Result Summary
checkpatch ✅ All commits pass style checks
dt-binding-check ✅ Binding validation passed
dtb-check ✅ DTB validation passed
sparse-check ✅ No sparse warnings
check-uapi-headers ✅ No UAPI changes
check-patch-compliance ❌ 3 commits missing required prefix
tag-check ❌ 3 commits missing required prefix

❌ check-patch-compliance

Root cause: All three commits lack the required subject-line prefix for the target branch qcom-6.18.y.

Failure details:

Checking commit: dt-bindings: power: sequencing: qcom-wcn: document wakeup-source
Commit summary does not start with a required prefix

Checking commit: power: sequencing: qcom-wcn: support SW_CTRL wake IRQ
Commit summary does not start with a required prefix

Checking commit: arm64: dts: qcom: shikra: enable WCN SW_CTRL wakeup
Commit summary does not start with a required prefix

Affected commits:

  • 6534c75953d5 - "dt-bindings: power: sequencing: qcom-wcn: document wakeup-source"
  • 44260cd86f80 - "power: sequencing: qcom-wcn: support SW_CTRL wake IRQ"
  • 723ea7e55053 - "arm64: dts: qcom: shikra: enable WCN SW_CTRL wakeup"

Fix: Add the appropriate prefix to each commit subject. Since the target branch is qcom-6.18.y (not qcom-next or qcom-next-staging), every commit must start with one of these prefixes:

Prefix Use when
FROMLIST: Patch posted to lore.kernel.org mailing list
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

Recommended action:

git rebase -i f19f3cdab691   # mark each commit as 'edit'

# For each commit:
git commit --amend -m "FROMLIST: dt-bindings: power: sequencing: qcom-wcn: document wakeup-source"
# (repeat for other commits with appropriate prefix)

git rebase --continue

If these patches have been posted to lore.kernel.org, use FROMLIST: and add a Link: trailer pointing to the lore URL. If they are vendor-only changes, use QCLINUX: (note: QCLINUX: will still fail check-patch-compliance due to a known checker limitation, but it's the correct prefix for vendor-only work).

Reproduce locally:

cd /path/to/kernel
bash ../kernel-checkers/check-patch-compliance.sh \
  --kernel-src . \
  --base f19f3cdab691f3d6d8bcccf03e46669ba4e714ea \
  --head 723ea7e55053fae4ff8623d85ee7e4a16fe47e05

❌ tag-check

Root cause: The target branch qcom-6.18.y requires all commits to have a subject-line prefix tag, but all three commits are missing this prefix.

Failure details:

This is a mandatory check for all branches except qcom-next and qcom-next-staging. Since the PR targets qcom-6.18.y, every commit subject must start with a valid prefix.

Affected commits:

  • 6534c75953d5 - "dt-bindings: power: sequencing: qcom-wcn: document wakeup-source"
  • 44260cd86f80 - "power: sequencing: qcom-wcn: support SW_CTRL wake IRQ"
  • 723ea7e55053 - "arm64: dts: qcom: shikra: enable WCN SW_CTRL wakeup"

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


Verdict

3 blockers must be fixed before merge.

All three commits require a subject-line prefix. The fix is straightforward: rebase and amend each commit to add the appropriate prefix (FROMLIST:, UPSTREAM:, QCLINUX:, etc.) based on the patch origin. If these patches have been posted upstream, also add a Link: trailer to the commit message pointing to the lore.kernel.org URL.

All other checkers (checkpatch, dt-binding-check, dtb-check, sparse-check, check-uapi-headers) passed successfully — the code quality and formatting are good. Only the commit message metadata needs to be updated.

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