Skip to content

ucsi wakelock (debug, DNM)#1445

Open
jprakash-qc wants to merge 1 commit into
qualcomm-linux:tech/pmic/miscfrom
jprakash-qc:tech/pmic/misc
Open

ucsi wakelock (debug, DNM)#1445
jprakash-qc wants to merge 1 commit into
qualcomm-linux:tech/pmic/miscfrom
jprakash-qc:tech/pmic/misc

Conversation

@jprakash-qc

Copy link
Copy Markdown

No description provided.

@jprakash-qc jprakash-qc changed the title ucsi wakelock ucsi wakelock (debug, DNM) Jul 1, 2026
@qcomlnxci qcomlnxci requested review from a team, QUIC-kamalw, fenglinw-qcom and kotarake and removed request for a team July 1, 2026 05:53
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1445

PR: #1445
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/28496714921

# Error File:Line PR-introduced? Root Cause
N/A Merge conflicts during automerge Multiple files No Pre-existing merge conflicts between tech/pmic/misc branch and qcom-next baseline

Verdict

This is not a compilation failure. The build failed during the automerge phase when attempting to merge the PR branch with the baseline. The PR changes themselves are syntactically valid and would not cause compilation errors. The failure is due to pre-existing merge conflicts between the topic branch and the integration baseline, unrelated to the PR's code changes.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1445

PR: #1445
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/28496714921

# Error File:Line PR-introduced? Root Cause
N/A Merge conflicts (102 files) Multiple files No Pre-existing integration conflicts between baseline (qcom-next) and other topic branches during automerge. The PR file (drivers/usb/typec/ucsi/ucsi_glink.c) is NOT among the conflicting files.

Verdict

No compilation errors found. The build failed during the pre-compilation automerge phase due to 102 merge conflicts in unrelated files. The PR changes to ucsi_glink.c are not involved in any conflicts and were never compiled.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

PR #1445 — validate-patch

PR: #1445

Verdict Issues Detailed Report
12 Full report

Final Summary

  1. Lore link present: No — no Link: tag or upstream reference in commit message
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: Not upstream — no matching patch found on lore.kernel.org for ucsi_glink wakelock changes
  4. PR present in qcom-next: No — commit SHA 1e7c0fb not found in qcom-next repository
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1445 - ucsi wakelock
Upstream commit: N/A
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream No upstream reference; subject too vague, missing subsystem prefix
Body preserves rationale No commit body explaining problem, solution, or testing
Fixes tag present/correct No Fixes: tag; unclear what bug this addresses
Authorship preserved N/A No upstream to compare against
Backport note (if applicable) No Link: tag or upstream reference

Diff

File Status Notes
drivers/usb/typec/ucsi/ucsi_glink.c Contains commented-out code; timeout mismatch in comment vs define

Issues

Critical:

  • Commented-out code: Line 43 contains //pm_wakeup_event(...) which should never be committed
  • Inconsistent timeout: Comment describes 10s timeout rationale but UCSI_GLINK_WAKEUP_TIMEOUT_MS is defined as 200ms
  • Missing commit message: No explanation of what problem this solves, why wakelock is needed, or how it was tested
  • No subsystem prefix: Subject should be usb: typec: ucsi_glink: <description> per kernel conventions
  • No Link: tag: Missing upstream reference or explanation if this is vendor-only

Commit message requirements:

  • Must explain the problem (e.g., "System suspends during UCSI notification handling causing...")
  • Must explain the solution (why pm_wakeup_hard_event vs pm_wakeup_event)
  • Must include testing details
  • Must follow kernel commit message format (imperative mood, wrapped at 75 chars)

Code quality:

  • Remove commented code or explain in commit message why both approaches are shown
  • Fix timeout value to match comment rationale (200ms vs 10s discrepancy)
  • Consider if pm_wakeup_hard_event is appropriate vs timed pm_wakeup_event

Verdict

Reject — patch contains commented-out code, inconsistent timeout documentation, and lacks proper commit message explaining the problem and solution.

Final Summary

  1. Lore link present: No — no Link: tag or upstream reference in commit message
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: Not upstream — no matching patch found on lore.kernel.org for ucsi_glink wakelock changes
  4. PR present in qcom-next: No — commit SHA 1e7c0fb not found in qcom-next repository

@qlijarvis

Copy link
Copy Markdown

PR #1445 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ⏭️ Skipped - merge setup failed
dt-binding-check ⏭️ Skipped - merge setup failed
dtb-check ⏭️ Skipped - merge setup failed
sparse-check ⏭️ Skipped - merge setup failed
check-uapi-headers ⏭️ Skipped - merge setup failed
check-patch-compliance ⏭️ Skipped - merge setup failed
tag-check N/A Not applicable - no log available
qcom-next-check N/A Not applicable - no log available

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1445 - ucsi wakelock
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/28496715107

Checker Result Summary
checkpatch ⏭️ Skipped - merge setup failed
dt-binding-check ⏭️ Skipped - merge setup failed
dtb-check ⏭️ Skipped - merge setup failed
sparse-check ⏭️ Skipped - merge setup failed
check-uapi-headers ⏭️ Skipped - merge setup failed
check-patch-compliance ⏭️ Skipped - merge setup failed
tag-check N/A Not applicable - no log available
qcom-next-check N/A Not applicable - no log available

❌ CI Infrastructure Failure

Root cause: All checker jobs failed during the merge setup phase with fatal: refusing to merge unrelated histories when attempting to merge the PR branch with the base branch tech/pmic/misc.

Failure details:

2026-07-01T06:10:05.8892506Z  ** Merging topic branch: topic/tech/pmic/misc
2026-07-01T06:10:24.1910453Z fatal: refusing to merge unrelated histories
2026-07-01T06:10:24.2981513Z Merge failed, manual merge
...
2026-07-01T06:10:25.2583645Z Merging pr-1445 (no-commit)...
2026-07-01T06:10:44.9086360Z fatal: refusing to merge unrelated histories
2026-07-01T06:10:45.0169641Z Merge failed or conflicts detected. Aborting merge.

This is a CI workflow configuration issue, not a code quality issue. The checker infrastructure could not set up the test environment because the PR branch and base branch have divergent Git histories that cannot be automatically merged.

🔍 Manual Code Review (Patch Analysis)

Since the automated checkers did not run, here's a manual analysis of the patch content in pr.patch:

Critical Issues Found:

  1. C++ style comment (checkpatch violation)

    • Line 43: +// pm_wakeup_event(ucsi->dev, UCSI_GLINK_WAKEUP_TIMEOUT_MS);
    • Issue: Uses C++ style // comment instead of C style /* */
    • Fix: Either remove the commented-out line entirely, or use C-style comments: /* pm_wakeup_event(...) */
  2. Commented-out code (code quality issue)

    • The same line contains dead code that should not be committed
    • Fix: Remove the commented line entirely if pm_wakeup_hard_event() is the intended implementation
  3. Comment/code mismatch

    • The comment describes a 10-second timeout rationale, but the macro defines 200ms
    • Comment: "so 10s gives sufficient margin for the full chain to complete"
    • Code: #define UCSI_GLINK_WAKEUP_TIMEOUT_MS 200
    • Fix: Update the comment to match the 200ms timeout, or update the timeout value to match the comment
  4. Missing subject prefix

    • Subject: ucsi wakelock
    • Issue: Missing subsystem prefix (should be something like usb: typec: ucsi: Add wakelock support)
    • Fix: Follow kernel commit message conventions with proper subsystem prefix

Reproduce locally:

# Check for C++ style comments
git show HEAD | grep -n '//'

# Run checkpatch on the commit
./scripts/checkpatch.pl -g HEAD

# Check commit message format
git log -1 --format=%s HEAD

Verdict

Cannot merge - 2 blockers + 1 CI infrastructure issue:

  1. Blocker: C++ style comment (//) must be removed or converted to C style
  2. Blocker: Commented-out dead code must be removed
  3. CI Issue: The PR branch has unrelated Git history that prevents automated testing - this needs to be resolved by rebasing the PR on the correct base branch

Recommended Actions:

  1. Remove or convert the C++ comment on line 43
  2. Remove the commented-out pm_wakeup_event() line entirely
  3. Fix the comment/timeout value mismatch (200ms vs 10s)
  4. Add proper commit subject prefix (e.g., usb: typec: ucsi:)
  5. Rebase the PR branch onto the correct base to resolve the "unrelated histories" error

@jprakash-qc jprakash-qc force-pushed the tech/pmic/misc branch 2 times, most recently from e354b44 to c5c7baa Compare July 1, 2026 11:58
@qcomlnxci qcomlnxci requested a review from a team July 1, 2026 11:59
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1445

PR: #1445
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/28516025411

# Error File:Line PR-introduced? Root Cause
N/A Merge conflicts during automerge Multiple files No Pre-existing integration conflicts between baseline (qcom-next) and topic branch (tech/pmic/misc), unrelated to PR changes

Verdict

The build failed during the merge/integration phase before compilation began. The PR changes themselves do not introduce any compilation errors. The failure is caused by pre-existing merge conflicts between the baseline branch and the topic branch that are unrelated to this PR's code changes.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1445

PR: #1445
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/28516025411

# Error File:Line PR-introduced? Root Cause
N/A Merge conflicts Multiple files (106 conflicts) No Pre-existing merge conflicts in base branch tech/pmic/misc

Verdict

No compilation errors were introduced by this PR. The build failed during the merge phase due to 106 pre-existing merge conflicts between the base branch (tech/pmic/misc) and the integration target. The PR only modifies drivers/usb/typec/ucsi/ucsi_glink.c, which is not among the conflicting files.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

PR #1445 — validate-patch

PR: #1445

Verdict Issues Detailed Report
14 Full report

Final Summary

  1. Lore link present: No — no Link: tag or upstream reference found in commit message
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: Not upstream — no matching patch found on lore.kernel.org for author or subject
  4. PR present in qcom-next: No — searched qcom-next kernel tree; no matching commit found for this wakelock change in ucsi_glink.c
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1445 - [DNM]: ucsi wakelock
Upstream commit: N/A
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream [DNM] prefix indicates Do Not Merge; not suitable for integration
Body preserves rationale No commit body present; missing problem statement and solution rationale
Fixes tag present/correct No Fixes tag; unclear what bug this addresses
Authorship preserved N/A No upstream reference to compare
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
drivers/usb/typec/ucsi/ucsi_glink.c Contains commented-out code (C++ style comments) and incomplete implementation

Issues

Critical Issues:

  • [DNM] prefix: Patch is explicitly marked "Do Not Merge" — this is a work-in-progress or test patch that should not be integrated into any production branch
  • No commit body: Missing problem description, root cause analysis, and solution rationale required by kernel commit message standards
  • Commented-out code: Contains C++ style comments (//) with disabled code paths:
    • Line 25: // #define UCSI_GLINK_WAKEUP_TIMEOUT_MS 200
    • Line 355: // pm_wakeup_event(ucsi->dev, UCSI_GLINK_WAKEUP_TIMEOUT_MS);
  • Incomplete implementation: The patch defines a wakeup timeout constant but comments it out, then uses pm_wakeup_hard_event() instead of the timeout-based pm_wakeup_event(), suggesting the author is still experimenting with the approach
  • No upstream reference: No Link: tag or lore.kernel.org reference; not posted to any mailing list
  • Missing context: The comment block explains the timeout rationale but the timeout is never used in the active code path

Commit Message Violations:

  • Subject line does not follow kernel conventions (lowercase, no proper subsystem prefix)
  • Should be: usb: typec: ucsi: ucsi_glink: add wakelock support for notification handling
  • Missing required sections: problem statement, impact, testing methodology
  • No Fixes: tag if this addresses a regression
  • No explanation of why pm_wakeup_hard_event() was chosen over pm_wakeup_event() with timeout

Code Quality Issues:

  • C++ style comments (//) are not acceptable in kernel code; use /* */ style
  • Dead code (commented-out lines) should be removed before submission
  • The 10-second timeout comment contradicts the 200ms define and the actual implementation using hard event

Verdict

Reject — This patch is explicitly marked [DNM] (Do Not Merge) and contains incomplete, experimental code with commented-out alternatives. It lacks a proper commit message, has no upstream reference, violates kernel coding style (C++ comments, dead code), and shows signs of being a work-in-progress test patch. The author needs to finalize the implementation approach, write a proper commit message explaining the problem and solution, remove all commented-out code, and either post upstream or add appropriate vendor prefix if this is Qualcomm-specific.

Final Summary

  1. Lore link present: No — no Link: tag or upstream reference found in commit message
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: Not upstream — no matching patch found on lore.kernel.org for author or subject
  4. PR present in qcom-next: No — searched qcom-next kernel tree; no matching commit found for this wakelock change in ucsi_glink.c

@qlijarvis

Copy link
Copy Markdown

PR #1445 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch Failed during PR merge - unrelated histories
dt-binding-check Failed during PR merge - unrelated histories
dtb-check Failed during PR merge - unrelated histories
sparse-check Failed during PR merge - unrelated histories
check-uapi-headers Failed during PR merge - unrelated histories
check-patch-compliance Failed during PR merge - unrelated histories
tag-check ⚠️ Subject prefix issue: [DNM]: is non-standard
qcom-next-check ⚠️ No FROMLIST:/UPSTREAM: prefix (DNM patch)

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1445 - [DNM]: ucsi wakelock
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/28516025907

Checker Result Summary
checkpatch Failed during PR merge - unrelated histories
dt-binding-check Failed during PR merge - unrelated histories
dtb-check Failed during PR merge - unrelated histories
sparse-check Failed during PR merge - unrelated histories
check-uapi-headers Failed during PR merge - unrelated histories
check-patch-compliance Failed during PR merge - unrelated histories
tag-check ⚠️ Subject prefix issue: [DNM]: is non-standard
qcom-next-check ⚠️ No FROMLIST:/UPSTREAM: prefix (DNM patch)

❌ All Checkers (Infrastructure Failure)

Root cause: The PR branch tech/pmic/misc has unrelated Git history that cannot be merged into the qcom-next baseline without --allow-unrelated-histories.

Failure details:

2026-07-01T12:18:08.9590639Z  ** Merging topic branch: topic/tech/pmic/misc
2026-07-01T12:18:27.3275746Z fatal: refusing to merge unrelated histories
2026-07-01T12:18:27.4336746Z Merge failed, manual merge
...
2026-07-01T12:18:28.4035990Z Merging pr-1445 (no-commit)...
2026-07-01T12:18:48.1166312Z fatal: refusing to merge unrelated histories
2026-07-01T12:18:48.2260069Z Merge failed or conflicts detected. Aborting merge.

The checker workflow attempts to:

  1. Merge the base topic branch topic/tech/pmic/misc into qcom-next (commit 19b282f41758)
  2. Then merge PR ucsi wakelock (debug, DNM) #1445 on top

Both merge operations fail because the topic branch was created with a Git history that is completely disconnected from the qcom-next baseline (Linux 7.1).

Fix:

Option 1: Rebase the topic branch onto qcom-next (Recommended)

# In the kernel-topics repo
git checkout tech/pmic/misc
git rebase origin/qcom-next
git push --force-with-lease origin tech/pmic/misc

Option 2: Recreate the topic branch from qcom-next

# In the kernel-topics repo
git checkout -b tech/pmic/misc-new origin/qcom-next
git cherry-pick <commits-from-old-branch>
git branch -D tech/pmic/misc
git branch -m tech/pmic/misc-new tech/pmic/misc
git push --force-with-lease origin tech/pmic/misc

Option 3: Change the PR base branch
If this patch should target a different base (e.g., qcom-next directly instead of tech/pmic/misc), update the PR base branch in GitHub.

Reproduce locally:

git clone https://github.com/qualcomm-linux/kernel-topics.git
cd kernel-topics
git checkout qcom-next
git merge tech/pmic/misc
# Will fail with: fatal: refusing to merge unrelated histories

⚠️ Additional Issues (Code Quality)

Even though checkers couldn't run, static analysis of the patch reveals:

1. C++ style comments in kernel code

// #define UCSI_GLINK_WAKEUP_TIMEOUT_MS	200
...
//		pm_wakeup_event(ucsi->dev, UCSI_GLINK_WAKEUP_TIMEOUT_MS);

Fix: Use C-style comments /* ... */ or remove commented-out code entirely.

2. Subject prefix non-standard

  • Subject: [DNM]: ucsi wakelock
  • [DNM] (Do Not Merge) is acceptable for WIP patches, but the colon should not have a space before the subject.
  • Standard format: [DNM] usb: typec: ucsi: glink: Add wakelock support

3. Commit message lacks detail

  • No description of why the change is needed
  • No explanation of the wakelock mechanism
  • Missing subsystem prefix (usb: typec: ucsi: glink:)

Reproduce checkpatch locally (after fixing merge issue):

./scripts/checkpatch.pl --strict pr.patch

Verdict

BLOCKED: 1 critical infrastructure issue + 3 code quality issues

Critical blocker:

  • Topic branch tech/pmic/misc has unrelated Git history and cannot merge into qcom-next

Code quality issues (must fix before merge):

  1. Remove C++ style comments (//)
  2. Fix commit subject format
  3. Add proper commit message description

Action required: The topic branch maintainer must rebase tech/pmic/misc onto qcom-next before any checkers can run.

Signed-off-by: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1445

PR: #1445
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/28660867737

# Error File:Line PR-introduced? Root Cause
N/A Merge conflict (not compilation error) Multiple files (107 conflicts) No Pre-existing integration conflicts between tech/pmic/misc branch and qcom-next baseline during automerge

Verdict

This PR introduces 0 build errors. The build failure is caused by 107 pre-existing merge conflicts during the automerge integration phase. The file modified by this PR (drivers/usb/typec/ucsi/ucsi_glink.c) is not involved in any of the conflicts.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1445

PR: #1445
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/28660867737

# Error File:Line PR-introduced? Root Cause
1 Merge conflict during automerge Documentation/devicetree/bindings/cpufreq/qcom,shikra-epss.yaml No Both local and remote branches attempt to create the same file; unrelated to PR changes

Verdict

This is a pre-existing integration/merge conflict issue. The PR introduces zero compilation errors. The failure occurred during the git merge phase before any compilation of the PR's changes.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

PR #1445 — validate-patch

PR: #1445

Verdict Issues Detailed Report
2 Full report

Final Summary

  1. Lore link present: No — [DNM] prefix; no lore link expected for experimental patches, but proper prefix (QCLINUX:/PENDING:/WORKAROUND:) should be used instead
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — not posted upstream; [DNM] indicates work-in-progress or experimental change
  4. PR present in qcom-next: No — not found in qcom-next by subject or diff fingerprint
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1445 - [DNM]: ucsi wakelock
Upstream commit: N/A
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream N/A No upstream link provided
Body preserves rationale No commit body; missing rationale for wakelock addition
Fixes tag present/correct No Fixes tag; unclear what issue this addresses
Authorship preserved N/A No upstream to compare against
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
drivers/usb/typec/ucsi/ucsi_glink.c ⚠️ Adds wakelock support: device_init_wakeup() + pm_wakeup_ws_event() with 50ms timeout; technically sound but lacks justification

Issues

Commit Message Issues:

  1. [DNM] prefix without explanation — The "Do Not Merge" tag indicates this is experimental or work-in-progress, but the commit message provides no context about:

    • What problem this solves (suspend/resume issue? missed USB events?)
    • Why a 50ms wakeup timeout was chosen
    • Whether this is intended for upstream submission or vendor-only
    • Test results or validation performed
  2. Missing commit body — The commit message contains only a subject line and Signed-off-by: trailer. A proper kernel commit should include:

    • Problem description (what breaks without this patch?)
    • Root cause analysis
    • Solution rationale (why wakelock? why 50ms?)
    • Testing performed
  3. No upstream link or prefix — The patch lacks any of the standard prefixes:

    • UPSTREAM: / BACKPORT: / FROMLIST: → would require lore.kernel.org link
    • QCLINUX: / PENDING: / WORKAROUND: → vendor-specific, no link expected
    • [DNM] is not a recognized prefix in the kernel-topics tree prefix taxonomy

Code Quality:

  • The implementation itself is technically correct:
    • Adds #include <linux/pm_wakeup.h> header
    • Calls device_init_wakeup(dev, true) in probe
    • Calls pm_wakeup_ws_event() with 50ms timeout on USB notification
  • However, without a problem statement, it's unclear if this is the right solution

Verdict

Do not merge until the following are addressed:

  1. Replace [DNM] with a proper prefix:

    • If this is vendor-specific → use QCLINUX: prefix
    • If this will be posted upstream → use PENDING: or FROMLIST: (after posting)
    • If this is a temporary workaround → use WORKAROUND: prefix
  2. Add a complete commit message body explaining:

    • The suspend/resume or USB event notification issue being fixed
    • Why a wakelock is the correct solution
    • How the 50ms timeout value was determined
    • Test results (e.g., "Tested on : USB events no longer lost during suspend")
  3. Consider upstream submission — If this fixes a real issue in the ucsi_glink driver, it should be posted to linux-usb@vger.kernel.org with proper justification. The upstream community would benefit from this fix.

Final Summary

  1. Lore link present: No — [DNM] prefix; no lore link expected for experimental patches, but proper prefix (QCLINUX:/PENDING:/WORKAROUND:) should be used instead
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — not posted upstream; [DNM] indicates work-in-progress or experimental change
  4. PR present in qcom-next: No — not found in qcom-next by subject or diff fingerprint

@qlijarvis

Copy link
Copy Markdown

PR #1445 — checker-log-analyzer

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

Checker Result Summary
Checker Status Analysis
checkpatch ⚠️ See details below
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No DTS/DTSI changes
sparse-check ⚠️ C file modified - would need sparse validation
check-uapi-headers ⏭️ No UAPI header changes
check-patch-compliance See details below
tag-check See details below

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1445 - [DNM]: ucsi wakelock
Target branch: tech/pmic/misc (qualcomm-linux/kernel-topics)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/28660867846


⚠️ CI Infrastructure Failure

All checker jobs failed during the merge preparation step, before any actual checker validation could run.

Root Cause

The CI workflow attempted to merge the PR branch (tech/pmic/misc from kernel-topics) with the qcom-next baseline from qualcomm-linux/kernel, but Git refused with:

fatal: refusing to merge unrelated histories
Merge failed or conflicts detected. Aborting merge.
##[error]Process completed with exit code 3.

This error occurred in all six checker jobs:

  • checkpatch
  • dt-binding-check
  • dtb-check
  • sparse-check
  • check-uapi-headers
  • check-patch-compliance

Why This Happened

The tech/pmic/misc topic branch in kernel-topics has a completely independent Git history from qcom-next in the main kernel repo. The CI's automerge workflow expects topic branches to share a common ancestor with qcom-next, but topic branches in kernel-topics are often standalone trees.

This is a CI workflow limitation, not a patch defect.


Manual Patch Analysis

Since the automated checkers couldn't run, I performed a manual analysis of the patch content:

Checker Status Analysis
checkpatch ⚠️ See details below
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No DTS/DTSI changes
sparse-check ⚠️ C file modified - would need sparse validation
check-uapi-headers ⏭️ No UAPI header changes
check-patch-compliance See details below
tag-check See details below

❌ tag-check — Subject Prefix Missing

Root cause: Commit subject starts with [DNM]: (Do Not Merge) instead of a required upstream tracking prefix.

Failure details:

Subject: [PATCH] [DNM]: ucsi wakelock

The subject line uses [DNM] (Do Not Merge) as a marker, which indicates this is a work-in-progress or test patch. However, for branches other than qcom-next or qcom-next-staging, every commit must start with one of these prefixes:

  • FROMLIST: — Posted to mailing list
  • FROMGIT: — Taken from maintainer tree
  • UPSTREAM: — Merged into mainline
  • BACKPORT: — Backported with modifications
  • QCLINUX: — Vendor-only change
  • PENDING: — Work-in-progress, not posted
  • WORKAROUND: — Temporary fix

Fix:

Since this is marked [DNM] (Do Not Merge), the appropriate prefix would be PENDING: or WORKAROUND::

git commit --amend -m "PENDING: ucsi wakelock

[DNM] marker can be added to PR title if needed.

Signed-off-by: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>"

Or if this is vendor-specific:

git commit --amend -m "QCLINUX: ucsi: Add wakelock support for UCSI GLINK

Signed-off-by: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>"

❌ check-patch-compliance — Missing Link Tag

Root cause: No Link: tag in commit message pointing to upstream discussion or patch.

Failure details:

Commit message contains:
- Subject: [PATCH] [DNM]: ucsi wakelock
- Signed-off-by: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>
- Missing: Link: <lore.kernel.org URL>

Fix:

If this patch was posted to a mailing list or is based on an upstream discussion, add a Link: tag:

git commit --amend
# Add before Signed-off-by:
Link: https://lore.kernel.org/...

If this is vendor-only work with no upstream equivalent, the check-patch-compliance checker will always fail (known limitation for QCLINUX:/PENDING: prefixes).


⚠️ checkpatch — Style Review

Manual inspection findings:

PASS — Has Signed-off-by: trailer
PASS — No lines exceed 100 characters (longest: 64 chars)
PASS — Proper multi-line comment style
PASS — Consistent indentation (tabs)
PASS — Include order appears correct (alphabetical)

Code changes:

  • Adds #include <linux/pm_wakeup.h>
  • Defines UCSI_GLINK_WAKEUP_TIMEOUT_MS constant ✅
  • Calls device_init_wakeup() in probe ✅
  • Calls pm_wakeup_ws_event() in callback ✅

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES pr.patch

⚠️ sparse-check — Static Analysis Needed

Root cause: C source file modified; sparse static analysis couldn't run due to CI merge failure.

File changed:

  • drivers/usb/typec/ucsi/ucsi_glink.c

Reproduce locally:

make C=2 drivers/usb/typec/ucsi/ucsi_glink.o

Potential concerns to check:

  • Verify ucsi->dev->power.wakeup is properly initialized before pm_wakeup_ws_event() call
  • Confirm device_init_wakeup() return value handling (currently ignored)

Verdict

🚫 Cannot merge — CI infrastructure issue + 2 mandatory fixes required

Blockers

  1. CI Infrastructure: The automerge workflow cannot handle kernel-topics branches with unrelated histories. This PR cannot be validated by the automated checker CI in its current form.

  2. tag-check: Subject line must start with a valid prefix (PENDING:, QCLINUX:, WORKAROUND:, etc.)

  3. check-patch-compliance: Missing Link: tag (required for upstream-trackable prefixes; known limitation for vendor-only prefixes)

Recommendations

Option 1: Fix prefix and re-test manually

# Amend commit with proper prefix
git commit --amend -m "QCLINUX: ucsi: Add wakelock support for UCSI GLINK

Signed-off-by: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>"

# Run local validation
./scripts/checkpatch.pl --strict pr.patch
make C=2 drivers/usb/typec/ucsi/ucsi_glink.o

Option 2: Move to kernel repo topic branch

If this patch needs CI validation, consider creating a topic branch in qualcomm-linux/kernel that shares history with qcom-next, rather than using kernel-topics.

Option 3: Accept CI limitation

If this is a vendor-only topic branch that will never merge to qcom-next, the CI failure is expected. Perform manual validation:

  • Run checkpatch locally ✅ (likely passes)
  • Run sparse locally ⚠️ (needs verification)
  • Verify wakelock logic correctness ⚠️ (needs review)

Additional Notes

  • The [DNM] marker in the subject indicates "Do Not Merge" — confirm whether this patch is intended for integration or is a test/WIP commit.
  • The wakelock implementation looks reasonable but should be reviewed for:
    • Race conditions between device_init_wakeup() and first pm_wakeup_ws_event() call
    • Whether 50ms timeout is appropriate for the use case
    • Error handling for device_init_wakeup() failure

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