Skip to content

usb: typec: hd3ss3220: Fix VBUS regulator reference handling - #972

Open
Chang Wu (kunjinkao-os) wants to merge 2 commits into
qualcomm-linux:qcom-6.18.yfrom
kunjinkao-os:fix/hd3ss3220-vbus-qcom-6.18.y
Open

usb: typec: hd3ss3220: Fix VBUS regulator reference handling#972
Chang Wu (kunjinkao-os) wants to merge 2 commits into
qualcomm-linux:qcom-6.18.yfrom
kunjinkao-os:fix/hd3ss3220-vbus-qcom-6.18.y

Conversation

@kunjinkao-os

@kunjinkao-os Chang Wu (kunjinkao-os) commented Aug 18, 2026

Copy link
Copy Markdown

The HD3SS3220 driver uses regulator_is_enabled() to determine whether VBUS
needs to be enabled or disabled. However, regulator_is_enabled() reports the
aggregate regulator state and does not indicate whether this consumer holds
an enable reference.

If another consumer enables VBUS first, the driver may skip its own
regulator_enable() call and later issue an unbalanced regulator_disable()
call.

Track the VBUS enable state locally so that regulator enable and disable
references remain balanced for this consumer. Update the state only after a
successful regulator operation.

This PR contains two commits:

  1. UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error message
    Already merged in the Linux USB subsystem.
  2. FROMLIST: usb: typec: hd3ss3220: track VBUS enable state per consumer
    Submitted upstream at:
    https://lore.kernel.org/linux-usb/20260819152027.90994-1-kunjinkao.jp@gmail.com/

Fixes: b3f9d6e ("usb: typec: hd3ss3220: Check if regulator needs to be switched")

Testing:

  • scripts/checkpatch.pl --strict: no errors or warnings
  • Qualcomm CI checkpatch, sparse, DT and UAPI checks: passed
  • Not tested on hardware

I am an external contributor and do not have access to Qualcomm's internal
CR system. Maintainer guidance on the appropriate CR association would be
appreciated.

@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.

1 similar comment
@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.

@kunjinkao-os

Copy link
Copy Markdown
Author

Dmitry Baryshkov (@lumag) yijiyang jingyiwang42

The VBUS regulator warning was observed in the log attached to #472, but it is
independent of that issue's IRQ test failure. The IRQ test false positive was
already fixed in qualcomm-linux/qcom-linux-testkit#462 , which was merged.

This PR only fixes the independent
"unbalanced disables for vbus_supply_1" warning. As an external contributor,
I do not have access to Qualcomm's internal CR system.

Could you please advise the appropriate CR to reference for this fix, or the
accepted process for an external fix without a CR?

@kunjinkao-os
Chang Wu (kunjinkao-os) force-pushed the fix/hd3ss3220-vbus-qcom-6.18.y branch from 3a1bdcc to 1186be0 Compare August 19, 2026 13:26
@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.

2 similar comments
@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.

@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.

@kunjinkao-os
Chang Wu (kunjinkao-os) force-pushed the fix/hd3ss3220-vbus-qcom-6.18.y branch from 1186be0 to 12aa1d7 Compare August 19, 2026 15:31
@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.

1 similar comment
@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.

Xu Rao and others added 2 commits August 20, 2026 15:43
hd3ss3220_regulator_control() enables the VBUS regulator when @on is
true and disables it when @on is false.  However, its error message uses
the opposite operation name, so an enable failure is reported as a
disable failure and vice versa.

Print the operation that was actually attempted.  Reporting the opposite
regulator operation on failures can mislead debugging of VBUS problems.

Fixes: 27fbc19 ("usb: typec: hd3ss3220: Enable VBUS based on role state")
Cc: stable@vger.kernel.org
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Xu Rao <raoxu@uniontech.com>
Link: https://lore.kernel.org/r/7A42A287B2B588D0+20260812094632.348581-1-raoxu@uniontech.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
regulator_is_enabled() reports the aggregate regulator state, not
whether this consumer holds an enable reference. If another consumer
enables VBUS first, the driver can skip its own regulator_enable() call
and later attempt to drop a reference it never acquired, triggering an
unbalanced regulator disable warning.

Track successful enable and disable calls locally. Keep the state
unchanged when an operation fails so a later role or ID notification
retries the operation while this consumer keeps balanced references.

Fixes: b3f9d6e ("usb: typec: hd3ss3220: Check if regulator needs to be switched")
Cc: stable@vger.kernel.org
Link: qualcomm-linux#472
Link: https://lore.kernel.org/r/20260819152027.90994-1-kunjinkao.jp@gmail.com
Signed-off-by: Chang Wu <kunjinkao.jp@gmail.com>
@kunjinkao-os
Chang Wu (kunjinkao-os) force-pushed the fix/hd3ss3220-vbus-qcom-6.18.y branch from 12aa1d7 to c6512aa Compare August 20, 2026 07:44
@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 #972 — validate-patch

PR: #972

Verdict Issues Detailed Report
0 Full report

Final Summary

  1. Lore link present: Partial - Commit 1/2 has invalid format (patch.msgid.link), Commit 2/2 has valid lore.kernel.org link
  2. Lore link matches PR commits: No - Commit 1/2 cannot be validated (invalid link), Commit 2/2 has critical mismatches (Fixes tag, Link tag, baseline)
  3. Upstream patch status: Commit 1/2 unknown (cannot fetch), Commit 2/2 Decision Pending (posted 2 days ago, no maintainer response yet)
  4. PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #972 - Two USB typec hd3ss3220 fixes
Upstream commits: Mixed (see per-commit analysis below)
Verdict: ❌ FAIL


Commit 1/2: UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error message

Commit Message

Check Status Note
Subject matches upstream ⚠️ Cannot verify - invalid lore link format
Body preserves rationale ⚠️ Cannot verify - invalid lore link format
Fixes tag present/correct References 09fa276f21e0 with FROMLIST: prefix in Fixes tag - should reference upstream SHA
Authorship preserved Xu Rao raoxu@uniontech.com
Backport note (if applicable) N/A Marked as UPSTREAM, not BACKPORT

Diff

File Status Notes
drivers/usb/typec/hd3ss3220.c ⚠️ Cannot verify against lore - invalid link format

Issues

  1. Invalid lore link format: The Link tag uses https://patch.msgid.link/7A42A287B2B588D0+20260812094632.348581-1-raoxu@uniontech.com instead of a proper lore.kernel.org URL. The validate-patch skill requires lore.kernel.org links.
  2. Fixes tag references vendor commit: The Fixes tag references 09fa276f21e0 ("FROMLIST: usb: typec: hd3ss3220: Enable VBUS based on role state") which includes a vendor prefix FROMLIST: in the commit subject. Upstream Fixes tags should reference the actual upstream commit SHA and subject without vendor prefixes.
  3. No lore evidence available: Cannot fetch or validate the upstream patch content because the link format is not supported by standard lore fetching tools (b4, curl).

Verdict for Commit 1/2

FAIL - Invalid lore link format prevents validation. Must use lore.kernel.org URL.


Commit 2/2: FROMLIST: usb: typec: hd3ss3220: track VBUS enable state per consumer

Commit Message

Check Status Note
Subject matches upstream PR adds FROMLIST: prefix; lore has no prefix
Body preserves rationale Identical wording
Fixes tag present/correct Critical mismatch: PR references 09fa276f21e0 (vendor commit), lore references b3f9d6e491fd (upstream commit)
Authorship preserved Chang Wu kunjinkao.jp@gmail.com matches
Backport note (if applicable) N/A FROMLIST, not a backport

Diff

File Status Notes
drivers/usb/typec/hd3ss3220.c Context mismatch - PR applies to different baseline than lore patch

Detailed Diff Analysis

Lore patch context (line 208-209):

-	if (regulator_is_enabled(hd3ss3220->vbus) == on)
+	if (hd3ss3220->vbus_enabled == on)

PR patch context (line 208-209):

-	if (regulator_is_enabled(hd3ss3220->vbus) == on)
+	if (hd3ss3220->vbus_enabled == on)

The hunks are identical, but the index lines differ:

  • Lore: index d0de5a2488f9..4eec90c82bae
  • PR: index b63e0bfe5ecc6..8d0f38fb70442

This indicates the PR patch applies to a different baseline than the lore patch. The lore patch was posted against upstream mainline, while the PR patch applies on top of commit 1/2 (the VBUS error message fix).

Critical issue: The lore patch error message line reads:

"vbus regulator %s failed: %d\n", on ? "enable" : "disable", ret);

But the lore patch was posted before the error message fix (commit 1/2) was applied. The original lore patch would have the inverted error message:

"vbus regulator %s failed: %d\n", on ? "disable" : "enable", ret);

The PR has reordered and rebased these patches, applying the error message fix first, then the state tracking fix on top. This is a semantic change from the original lore posting.

Issues

  1. Fixes tag mismatch: PR references vendor commit 09fa276f21e0, lore references upstream commit b3f9d6e491fd. These are different commits fixing different issues.
  2. Link tag mismatch: PR includes Link: https://lore.kernel.org/linux-usb/20260819152027.90994-1-kunjinkao.jp@gmail.com/ but lore has Link: https://github.com/qualcomm-linux/kernel/issues/472 (GitHub issue, not lore).
  3. Testing note removed: Lore patch includes a testing note section; PR omits it.
  4. Patch ordering/rebasing: The PR applies this patch on top of commit 1/2, creating a different baseline than the original lore posting. The lore patch was posted against a tree without the error message fix.

Upstream Patch Status

Verdict:Decision Pending

Evidence from lore thread (fetched mbox):

  • Posted: Wed, 19 Aug 2026 23:20:27 +0800
  • No maintainer replies found in the mbox
  • No applied, queued, Reviewed-by:, or Acked-by: signals
  • No NAK or rejection signals
  • Thread appears to be a single-message posting with no follow-up discussion yet

Status: Patch was posted 2 days ago (as of 2026-08-21). Too recent to determine acceptance. No community decision yet.

Verdict for Commit 2/2

FAIL - Multiple critical mismatches between PR and lore patch:

  • Fixes tag references wrong commit
  • Link tag references wrong URL
  • Patch applies to different baseline (rebased on top of commit 1/2)

Integration Presence Check

From integration_presence_report.md:

Commit qcom-next topics Final Status
1/2 UPSTREAM: fix VBUS regulator error ❌ missing ❌ missing missing
2/2 FROMLIST: track VBUS enable state ⚠️ partial ❌ missing partial

Overall: ❌ FAIL - 1/2 commits completely missing, 1/2 commits only partially present.


Final Verdict

FAIL - Do not merge without corrections.

Critical Issues Summary

Commit 1/2:

  1. Invalid lore link format (patch.msgid.link instead of lore.kernel.org)
  2. Fixes tag references vendor commit with FROMLIST: prefix in subject
  3. Cannot validate patch content against upstream

Commit 2/2:

  1. Fixes tag references vendor commit 09fa276f21e0 instead of upstream commit b3f9d6e491fd
  2. Link tag points to lore but lore patch links to GitHub issue
  3. Patch rebased on different baseline than original lore posting
  4. Testing notes removed from commit message

Integration:

  1. Neither commit is fully present in qcom-next or topics branches
  2. Commit 1/2 completely missing from integration tree
  3. Commit 2/2 only partially present

Recommendations

  1. For commit 1/2: Replace patch.msgid.link URL with proper lore.kernel.org URL. Fix the Fixes tag to reference the actual upstream commit SHA without vendor prefixes.

  2. For commit 2/2:

    • Update Fixes tag to reference b3f9d6e491fd (the upstream commit) instead of 09fa276f21e0 (vendor commit)
    • Verify the Link tag - lore patch has GitHub issue link, PR has lore link (these should match)
    • Consider whether the patch ordering (error fix first, then state tracking) is intentional and correct
    • Document the rebase/reordering in the commit message if intentional
  3. Integration: Ensure both commits are properly integrated into qcom-next before merging to avoid divergence from the integration branch.


Final Summary

  1. Lore link present: Partial - Commit 1/2 has invalid format (patch.msgid.link), Commit 2/2 has valid lore.kernel.org link
  2. Lore link matches PR commits: No - Commit 1/2 cannot be validated (invalid link), Commit 2/2 has critical mismatches (Fixes tag, Link tag, baseline)
  3. Upstream patch status: Commit 1/2 unknown (cannot fetch), Commit 2/2 Decision Pending (posted 2 days ago, no maintainer response yet)
  4. PR present in qcom-next/topics: Fail - 1/2 commits missing, 1/2 commits only partially present (per integration_presence_report.md)

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: 3c1e80ceb9fb6978aa94bc0624e7c0003f3b4f6e
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/2 [PATCH 1/2] UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
2/2 [PATCH 2/2] FROMLIST: usb: typec: hd3ss3220: track VBUS enable state 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: 0/2
partial_commits: 1/2
missing_commits: 1/2
topics_checked_for_commits: 2/2
final_summary: PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics

@qlijarvis

Copy link
Copy Markdown

PR #972 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch 2 commits with warnings (long lines, author name mismatch, unknown commit)
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No devicetree changes
sparse-check Passed
check-uapi-headers No UAPI changes
check-patch-compliance Both commits missing required prefix tags
tag-check Both commits missing required prefix tags (target branch unknown, assuming not qcom-next)

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #972
Run: https://github.com/qualcomm-linux/kernel-config/actions/runs/32119413844

Checker Result Summary
checkpatch 2 commits with warnings (long lines, author name mismatch, unknown commit)
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No devicetree changes
sparse-check Passed
check-uapi-headers No UAPI changes
check-patch-compliance Both commits missing required prefix tags
tag-check Both commits missing required prefix tags (target branch unknown, assuming not qcom-next)

❌ checkpatch

Root cause: Both commits have style warnings related to commit message formatting and metadata.

Failure details:

Commit 604ad2b ("usb: typec: hd3ss3220: Fix VBUS regulator error message"):

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#6: 
The error message currently reports the inverse operation because the enable/disable names are selected backwards. Report the operation that was actually attempted.

WARNING: From:/Signed-off-by: email name mismatch: 'From: kunjinkao-os <kunjinkao.jp@gmail.com>' != 'Signed-off-by: Chang Wu <kunjinkao.jp@gmail.com>'

604ad2b6261ddc1d7db8e7f862f2340ee6657a81 total: 0 errors, 2 warnings, 0 checks, 8 lines checked

Commit 3a1bdcc ("usb: typec: hd3ss3220: Track VBUS enable state per consumer"):

WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#8: 
called regulator_enable(). If another consumer enables VBUS first, hd3ss3220

WARNING: Unknown commit id 'b3f9d6e491fd', maybe rebased or not pulled?
#14: 
Fixes: b3f9d6e491fd ("usb: typec: hd3ss3220: Check if regulator needs to be switched")

WARNING: From:/Signed-off-by: email name mismatch: 'From: kunjinkao-os <kunjinkao.jp@gmail.com>' != 'Signed-off-by: Chang Wu <kunjinkao.jp@gmail.com>'

3a1bdcc6be7511bcb81aa77c96a996021d72067a total: 0 errors, 3 warnings, 0 checks, 29 lines checked

Fix:

  1. Long commit body lines — Wrap commit message body lines at 75 characters. The offending lines are:

    • Commit 1: "The error message currently reports the inverse operation because the enable/disable names are selected backwards. Report the operation that was actually attempted."
    • Commit 2: "called regulator_enable(). If another consumer enables VBUS first, hd3ss3220"
  2. Author name mismatch — The From: line shows kunjinkao-os <kunjinkao.jp@gmail.com> but Signed-off-by: shows Chang Wu <kunjinkao.jp@gmail.com>. This appears to be commit 1 (604ad2b) which should have author Xu Rao <raoxu@uniontech.com> based on the patch file. The warning is likely a false positive or the commits were authored incorrectly. Verify the correct author and amend if needed:

    git commit --amend --author="Xu Rao <raoxu@uniontech.com>"
  3. Unknown commit ID — The Fixes: tag references b3f9d6e491fd which is not in the tree. This is likely because the original Fixes: tag in the upstream patch referenced a different commit SHA. Update the Fixes: tag to reference the correct commit SHA in this tree, or verify the commit exists.

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git c57b63497cd72a45c8992e05373f7b32901cf029..3a1bdcc6be7511bcb81aa77c96a996021d72067a

❌ check-patch-compliance

Root cause: Both commits are missing the required subject-line prefix tags (UPSTREAM:, FROMLIST:, etc.).

Failure details:

Checking commit: usb: typec: hd3ss3220: Fix VBUS regulator error message
Commit summary does not start with a required prefix

Checking commit: usb: typec: hd3ss3220: Track VBUS enable state per consumer
Commit summary does not start with a required prefix

Fix:

The patch file shows the correct prefixes should be:

  • Commit 1: UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error message
  • Commit 2: FROMLIST: usb: typec: hd3ss3220: track VBUS enable state per consumer

However, the actual commits in the git tree are missing these prefixes. Amend each commit to add the correct prefix:

# For commit 604ad2b6261d (first commit)
git rebase -i c57b63497cd72a45c8992e05373f7b32901cf029
# Mark commit as 'edit'
git commit --amend -m "UPSTREAM: usb: typec: hd3ss3220: Fix VBUS regulator error message

<rest of commit message>"

# For commit 3a1bdcc6be75 (second commit)
# Continue rebase and mark as 'edit'
git commit --amend -m "FROMLIST: usb: typec: hd3ss3220: Track VBUS enable state per consumer

<rest of commit message>"

git rebase --continue

Note: The patch file in the workspace shows the commits should have these prefixes, but the actual commits in the git tree at the time of CI run did not. This suggests the commits were amended after the CI run, or the patch file was generated from a different branch.


❌ tag-check

Root cause: Both commits are missing required subject-line prefix tags.

Failure details:

This is the same issue as check-patch-compliance. The tag-check is a manual verification step that confirms every commit subject starts with a valid prefix tag when the target branch is not qcom-next or qcom-next-staging.

Since the target branch could not be determined from the available logs, and the commits are missing prefixes, this check fails.

Commits without prefix:

  • 604ad2b6261d: "usb: typec: hd3ss3220: Fix VBUS regulator error message"
  • 3a1bdcc6be75: "usb: typec: hd3ss3220: Track VBUS enable state per consumer"

Fix: Same as check-patch-compliance — add the correct prefix to each commit subject:

  • Commit 1 → UPSTREAM: usb: typec: hd3ss3220: Fix VBUS regulator error message
  • Commit 2 → FROMLIST: usb: typec: hd3ss3220: Track VBUS enable state per consumer

Note: If the target branch is qcom-next or qcom-next-staging, this check does not apply and can be marked as N/A.


Verdict

3 blockers must be fixed before merge:

  1. checkpatch warnings — Wrap long commit body lines at 75 chars, verify author metadata, and fix the unknown commit ID in the Fixes: tag.
  2. check-patch-compliance failure — Add UPSTREAM: prefix to commit 1 and FROMLIST: prefix to commit 2.
  3. tag-check failure — Same as Adding Email Checker  #2 (add required prefix tags).

Additional observations:

  • The patch file (pr.patch) shows the commits with the correct prefixes, but the actual git commits at CI runtime were missing them. This suggests either:
    • The commits were amended after the CI run, or
    • The patch file was generated from a different branch/state than what CI tested.
  • The From: author in the checkpatch warning (kunjinkao-os) does not match the expected author from the patch file (Xu Rao for commit 1, Chang Wu for commit 2). Verify the correct authorship.

Recommendation: Amend both commits to add the required prefix tags and wrap long commit body lines, then force-push to re-trigger CI.

@kunjinkao-os
Chang Wu (kunjinkao-os) force-pushed the fix/hd3ss3220-vbus-qcom-6.18.y branch from c6512aa to 4aeb258 Compare August 21, 2026 15:48
@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.

@kunjinkao-os

Copy link
Copy Markdown
Author

Note: the qlijarvis reports above were generated before the latest force-push and refer to the old commits. The current PR head is 4aeb258b2e12dc21813edc72c27afca4dd7b072b (b8d4e243, 4aeb258b). Please use this revision for any further validation.

@qlijarvis

Copy link
Copy Markdown

PR #972 — validate-patch

PR: #972

Verdict Issues Detailed Report
0 Full report

Final Summary

  1. Lore link present: Yes — both commits have valid lore.kernel.org links in their commit messages
  2. Lore link matches PR commits: Yes — diff content is faithful to lore for both commits; only base commit hashes differ as expected
  3. Upstream patch status:
    • Commit 1/2: ✅ ACKed (Reviewed-by from maintainer) but not yet merged
    • Commit 2/2: ⏳ Decision Pending (posted 2026-08-19, awaiting review)
  4. PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #972 - usb: typec: hd3ss3220 fixes
Upstream commits:


Commit 1/2: UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error message

Commit Message

Check Status Note
Subject matches upstream Subject identical except for UPSTREAM: prefix
Body preserves rationale Full commit message preserved
Fixes tag present/correct Fixes: 27fbc19e52b9 present
Authorship preserved From: Xu Rao <raoxu@uniontech.com> matches lore
Backport note N/A Not a backport - direct upstream commit
Cc: stable tag Present as required
Reviewed-by tag Reviewed-by: Heikki Krogerus present

Diff

File Status Notes
drivers/usb/typec/hd3ss3220.c ⚠️ Context line numbers differ (PR: 218, lore: 218) but change is identical

Diff comparison: The actual code change is identical - swapping "disable" : "enable" to "enable" : "disable" in the error message. The only difference is the base commit hash (PR: b56df9349f89b, lore: 3e39b800e6b5), which is expected due to different tree states.

Upstream Patch Status

Community verdict: ✅ ACKed — Reviewed-by: Heikki Krogerus heikki.krogerus@linux.intel.com

The lore thread shows formal review approval from the subsystem maintainer. The patch was posted as v2 with the requested Cc: stable@vger.kernel.org tag added.


Commit 2/2: FROMLIST: usb: typec: hd3ss3220: track VBUS enable state per consumer

Commit Message

Check Status Note
Subject matches upstream Subject identical except for FROMLIST: prefix
Body preserves rationale Full commit message preserved
Fixes tag present/correct Fixes: b3f9d6e491fd present
Authorship preserved From: Chang Wu <kunjinkao.jp@gmail.com> matches lore
Backport note N/A Not a backport - FROMLIST commit
Cc: stable tag Present as required
Link to GitHub issue Link: https://github.com/qualcomm-linux/kernel/issues/472 present

Diff

File Status Notes
drivers/usb/typec/hd3ss3220.c All hunks match exactly

Diff comparison: The PR diff is identical to the lore patch:

  • Adds bool vbus_enabled; field to struct
  • Replaces regulator_is_enabled() check with local state check
  • Adds early return on error
  • Updates local state after successful operation

The only difference is the base commit hash (PR: b63e0bfe5ecc6, lore: d0de5a2488f9), which is expected. Notably, the PR's base for commit 2/2 (b63e0bfe5ecc6) matches the result of commit 1/2, showing proper series ordering.

Upstream Patch Status

Community verdict: ⏳ Decision Pending — posted 2026-08-19, no maintainer response yet

The lore thread contains only the original posting with no replies. The patch is recent (posted 3 days ago as of 2026-08-22) and is still under review.


Issues Found

  1. Integration presence failure (Commit 1/2): The integration_presence_report.md shows commit 1/2 is missing from both qcom-next and kernel-topics. This is a validation failure - the commit claims UPSTREAM: prefix but is not present in the integration branch.

  2. Integration presence partial (Commit 2/2): The integration_presence_report.md shows commit 2/2 has partial evidence in qcom-next (subject or partial tree evidence found) but the full change was not verified, and it's missing from kernel-topics.

  3. Prefix inconsistency (Commit 1/2): The commit uses UPSTREAM: prefix, which according to the validate-patch skill indicates the patch is "Merged into Linus's tree". However, the upstream status shows only Reviewed-by: approval, not a merge confirmation. The correct prefix should be FROMLIST: until the patch is actually merged into mainline.


Recommendation

Do not merge until the following issues are resolved:

  1. Commit 1/2 prefix correction: Change prefix from UPSTREAM: to FROMLIST: since the patch has only received review approval but has not been merged into mainline yet. The UPSTREAM: prefix should only be used after the patch appears in Linus's tree or a stable branch.

  2. Integration presence verification: Both commits must be present in qcom-next or kernel-topics before merging. The current state shows:

    • Commit 1/2: completely missing from both
    • Commit 2/2: only partial evidence in qcom-next
  3. Wait for upstream merge (Commit 1/2): Since commit 1/2 has maintainer approval, monitor lore.kernel.org for the merge confirmation. Once merged, update the prefix to UPSTREAM: and add the mainline commit SHA reference.

  4. Wait for upstream decision (Commit 2/2): Commit 2/2 is still pending review. Wait for maintainer feedback before proceeding.


Final Summary

  1. Lore link present: Yes — both commits have valid lore.kernel.org links in their commit messages
  2. Lore link matches PR commits: Yes — diff content is faithful to lore for both commits; only base commit hashes differ as expected
  3. Upstream patch status:
    • Commit 1/2: ✅ ACKed (Reviewed-by from maintainer) but not yet merged
    • Commit 2/2: ⏳ Decision Pending (posted 2026-08-19, awaiting review)
  4. PR present in qcom-next/topics: Fail — per integration_presence_report.md: 1/2 commits missing, 1/2 partial; overall status FAIL

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: 3c1e80ceb9fb6978aa94bc0624e7c0003f3b4f6e
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/2 [PATCH 1/2] UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
2/2 [PATCH 2/2] FROMLIST: usb: typec: hd3ss3220: track VBUS enable state 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: 0/2
partial_commits: 1/2
missing_commits: 1/2
topics_checked_for_commits: 2/2
final_summary: PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics

@qlijarvis

Copy link
Copy Markdown

PR #972 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch No style issues
dt-binding-check ⏭️ Skipped - no binding changes
dtb-check ⏭️ Skipped - no DTS changes
sparse-check No new sparse warnings
check-uapi-headers No UAPI changes
check-patch-compliance 2 commits missing required prefix
tag-check 2 commits missing subject prefix (mandatory for qcom-6.18.y)

Detailed report: Full report

Checker analysis — click to expand

The filesystem is read-only. Let me just output the report directly:

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #972 - USB Type-C HD3SS3220 VBUS regulator fixes
Target Branch: qcom-6.18.y
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/32258259884

Checker Result Summary
checkpatch No style issues
dt-binding-check ⏭️ Skipped - no binding changes
dtb-check ⏭️ Skipped - no DTS changes
sparse-check No new sparse warnings
check-uapi-headers No UAPI changes
check-patch-compliance 2 commits missing required prefix
tag-check 2 commits missing subject prefix (mandatory for qcom-6.18.y)

❌ check-patch-compliance

Root cause: Both commits in the PR have subject lines that do not start with a required prefix tag.

Failure details:

Checking commit: usb: typec: hd3ss3220: Fix VBUS regulator error message
Commit summary does not start with a required prefix

Checking commit: usb: typec: hd3ss3220: Track VBUS enable state per consumer
Commit summary does not start with a required prefix

Analysis:

The checker detected that the actual git commit subject lines are:

  1. usb: typec: hd3ss3220: Fix VBUS regulator error message
  2. usb: typec: hd3ss3220: Track VBUS enable state per consumer

However, the patch file shows they should be:

  1. UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error message
  2. FROMLIST: usb: typec: hd3ss3220: track VBUS enable state per consumer

This indicates the git commits themselves don't have the prefix in their subject line, even though the patch format shows them. The check-patch-compliance checker validates the actual git commit message, not the patch file format.

Fix:

Amend both commits to add the required prefix to their subject lines:

# Interactive rebase to edit both commits
git rebase -i HEAD~2

# Mark both commits as 'edit' or 'reword'
# For each commit:

# Commit 1: Add UPSTREAM: prefix
git commit --amend -m "UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error message"
git rebase --continue

# Commit 2: Add FROMLIST: prefix  
git commit --amend -m "FROMLIST: usb: typec: hd3ss3220: track VBUS enable state per consumer"
git rebase --continue

# Force push the updated branch
git push --force-with-lease

Reproduce locally:

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

❌ tag-check

Root cause: Target branch qcom-6.18.y requires all commits to have a subject prefix tag, but both commits are missing them.

Failure details:

The PR targets qcom-6.18.y, which is not qcom-next or qcom-next-staging. Therefore, every commit must start with one of these prefixes:

  • FROMLIST: - Patch posted to mailing list
  • FROMGIT: - Patch from maintainer tree
  • UPSTREAM: - Patch merged into mainline
  • BACKPORT: - Upstream patch with modifications
  • QCLINUX: - Vendor-only change
  • PENDING: - Work-in-progress
  • WORKAROUND: - Temporary fix

Commits missing prefix:

  1. Commit 1: usb: typec: hd3ss3220: Fix VBUS regulator error message

    • Should be: UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error message
    • Rationale: This patch has a Link: tag pointing to lore.kernel.org and is signed off by Greg Kroah-Hartman, indicating it's merged upstream
  2. Commit 2: usb: typec: hd3ss3220: Track VBUS enable state per consumer

    • Should be: FROMLIST: usb: typec: hd3ss3220: track VBUS enable state per consumer
    • Rationale: Based on the patch file showing FROMLIST: prefix, this appears to be posted to the mailing list but not yet merged

Fix:

Same as the check-patch-compliance fix above - amend both commits to add the appropriate prefix to their subject lines.

Reproduce locally:

# List all commits and check for missing prefixes
git log <base>..<head> --format="%H %s" | while read sha subject; do
  if ! echo "$subject" | grep -qE '^(FROMLIST|FROMGIT|UPSTREAM|BACKPORT|QCLINUX|PENDING|WORKAROUND):'; then
    echo "❌ MISSING prefix: $sha $subject"
  fi
done

Verdict

2 blockers must be fixed before merge:

  1. Add UPSTREAM: prefix to commit 1 subject line
  2. Add FROMLIST: prefix to commit 2 subject line

Both failures are the same root cause: the git commit subject lines are missing the required prefix tags. Once the commits are amended with the correct prefixes and force-pushed, all checkers should pass.

Note: The patch file format shows the prefixes in the Subject: header, but the actual git commit messages don't contain them. This is a common issue when patches are applied without preserving the prefix in the commit message itself.

[/CHECKER_LOG_REPORT]

@qlijarvis

Copy link
Copy Markdown

PR #972 — validate-patch

PR: #972

Verdict Issues Detailed Report
0 Full report

Final Summary

  1. Lore link present: Yes — both commits have valid lore.kernel.org links in the commit messages.
  2. Lore link matches PR commits: Yes — diff content is faithful to lore for both commits (context line numbers differ due to different base commits, which is expected).
  3. Upstream patch status:
    • Commit 1/2: ✅ ACKed — Reviewed-by maintainer, Signed-off-by Greg Kroah-Hartman (USB subsystem maintainer) indicates acceptance.
    • Commit 2/2: ⏳ Decision Pending — posted 2026-08-19, no maintainer reply yet.
  4. PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #972 — "usb: typec: hd3ss3220: fix VBUS regulator error message + track VBUS enable state per consumer"
Verdict:FAIL


Commit 1/2: UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error message

Upstream: https://lore.kernel.org/r/7A42A287B2B588D0+20260812094632.348581-1-raoxu@uniontech.com

Commit Message

Check Status Note
Subject matches upstream Subject identical except for UPSTREAM: prefix
Body preserves rationale Body text matches lore patch exactly
Fixes tag present/correct Fixes: 27fbc19e52b9 present and correct
Authorship preserved From: Xu Rao <raoxu@uniontech.com> matches lore
Backport note N/A Not a backport — UPSTREAM: prefix indicates merged upstream

Diff

File Status Notes
drivers/usb/typec/hd3ss3220.c Diff matches lore patch exactly (context line numbers differ: PR has b56df9349f89b..b63e0bfe5ecc6, lore has 3e39b800e6b5..d0de5a2488f9 — this is expected due to different base commits)

Upstream Patch Status

Community verdict:ACKed — Reviewed-by: Heikki Krogerus (subsystem maintainer) present in lore thread. PR commit message includes Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, indicating the patch was accepted and merged by the USB subsystem maintainer.

Integration Presence

Missing from qcom-next and topics — integration_presence_report.md reports "missing - no subject, patch-id, or full tree-content match found" in both qcom-next and topics.

Issue: The UPSTREAM: prefix indicates this patch is merged into Linus's tree, but it is not present in qcom-next or topics. This is a validation failureUPSTREAM: commits must be present in the integration tree before being merged into a PR.


Commit 2/2: FROMLIST: usb: typec: hd3ss3220: track VBUS enable state per consumer

Upstream: https://lore.kernel.org/r/20260819152027.90994-1-kunjinkao.jp@gmail.com

Commit Message

Check Status Note
Subject matches upstream Subject identical except for FROMLIST: prefix
Body preserves rationale Body text matches lore patch exactly
Fixes tag present/correct Fixes: b3f9d6e491fd present and correct
Authorship preserved From: Chang Wu <kunjinkao.jp@gmail.com> matches lore author; Signed-off-by: Chang Wu present (correct for FROMLIST: — submitter is the original author)
Backport note N/A Not a backport — FROMLIST: prefix indicates posted to mailing list but not yet merged

Diff

File Status Notes
drivers/usb/typec/hd3ss3220.c Diff matches lore patch exactly (context line numbers differ: PR has b63e0bfe5ecc6..8d0f38fb70442, lore has d0de5a2488f9..4eec90c82bae — expected due to different base commits; PR applies on top of commit 1/2)

Upstream Patch Status

Community verdict:Decision Pending — Lore thread contains only the original posting (dated 2026-08-19). No maintainer replies, no Reviewed-by:/Acked-by: tags, no applied/queued confirmation. Patch is under review.

Integration Presence

⚠️ Partial presence in qcom-next — integration_presence_report.md reports "partial - subject or partial tree evidence found, but full change was not verified" in qcom-next; "missing" in topics.

Issue: The commit is not fully verified in qcom-next. This is acceptable for a FROMLIST: commit (not yet merged upstream), but the "partial" status suggests the change may be incomplete or modified in qcom-next.


Issues Found

  1. Commit 1/2 — Missing from integration tree (FAIL):
    The UPSTREAM: prefix indicates this patch is merged into Linus's tree, but integration_presence_report.md confirms it is missing from both qcom-next and topics. Per the validate-patch skill, UPSTREAM: commits must be present in the integration tree before being merged into a PR. This is a validation failure.

  2. Commit 2/2 — Partial presence in qcom-next (WARNING):
    The commit is marked "partial" in qcom-next, meaning subject or partial tree evidence was found but the full change was not verified. This suggests the commit may be incomplete or modified in qcom-next. Manual verification is recommended.

  3. Commit 2/2 — Upstream status is "Decision Pending" (INFO):
    The lore patch was posted on 2026-08-19 and has not yet received maintainer review or acceptance. The FROMLIST: prefix is correct for this status. However, the PR should be monitored for upstream acceptance — if the patch is NACKed or requires significant changes, the PR will need to be updated or reverted.


Verdict

FAIL — Do not merge without correction.

Reason:
Commit 1/2 uses the UPSTREAM: prefix but is missing from qcom-next and topics. Per the validate-patch skill and Qualcomm kernel workflow, UPSTREAM: commits must be present in the integration tree before being merged into a PR. This is a validation failure.

Recommendation:

  1. For commit 1/2:

    • Verify that the patch is actually merged into Linus's tree (check torvalds/linux master or a stable branch).
    • If merged, wait for the patch to land in qcom-next via the upstream sync process, then re-submit the PR.
    • If not merged, change the prefix from UPSTREAM: to FROMLIST: and update the commit message to remove Signed-off-by: Greg Kroah-Hartman (this line should only be present after the patch is merged upstream).
  2. For commit 2/2:

    • Investigate the "partial" status in qcom-next — verify that the full change is present and correct.
    • Monitor the lore thread for maintainer feedback. If the patch is NACKed or requires changes, update the PR accordingly.

Final Summary

  1. Lore link present: Yes — both commits have valid lore.kernel.org links in the commit messages.
  2. Lore link matches PR commits: Yes — diff content is faithful to lore for both commits (context line numbers differ due to different base commits, which is expected).
  3. Upstream patch status:
    • Commit 1/2: ✅ ACKed — Reviewed-by maintainer, Signed-off-by Greg Kroah-Hartman (USB subsystem maintainer) indicates acceptance.
    • Commit 2/2: ⏳ Decision Pending — posted 2026-08-19, no maintainer reply yet.
  4. PR present in qcom-next/topics: ❌ Fail — Commit 1/2 is missing from both qcom-next and topics (validation failure for UPSTREAM: prefix); Commit 2/2 has partial presence in qcom-next (warning — needs manual 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: 3c1e80ceb9fb6978aa94bc0624e7c0003f3b4f6e
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/2 [PATCH 1/2] UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
2/2 [PATCH 2/2] FROMLIST: usb: typec: hd3ss3220: track VBUS enable state 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: 0/2
partial_commits: 1/2
missing_commits: 1/2
topics_checked_for_commits: 2/2
final_summary: PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics

@qlijarvis

Copy link
Copy Markdown

PR #972 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ⚠️ 2 warnings (unknown commit IDs in Fixes: tags)
dt-binding-check ⏭️ Skipped (no DT binding changes)
dtb-check ⏭️ Skipped (no DTS changes)
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance Passed
tag-check Both commits have valid prefixes (UPSTREAM:, FROMLIST:)

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #972 - usb: typec: hd3ss3220: fix VBUS regulator issues
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/32270747565

Checker Result Summary
checkpatch ⚠️ 2 warnings (unknown commit IDs in Fixes: tags)
dt-binding-check ⏭️ Skipped (no DT binding changes)
dtb-check ⏭️ Skipped (no DTS changes)
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance Passed
tag-check Both commits have valid prefixes (UPSTREAM:, FROMLIST:)

⚠️ checkpatch

Root cause: Fixes: tags reference upstream commit SHAs that don't exist in the target tree yet.

Failure details:

Commit 7904cd8afaa9 ("UPSTREAM: usb: typec: hd3ss3220: fix VBUS regulator error message")
WARNING: Unknown commit id '27fbc19e52b9', maybe rebased or not pulled?
#17: 
Fixes: 27fbc19e52b9 ("usb: typec: hd3ss3220: Enable VBUS based on role state")

Commit 12aa1d730bee ("FROMLIST: usb: typec: hd3ss3220: track VBUS enable state per consumer")
WARNING: Unknown commit id 'b3f9d6e491fd', maybe rebased or not pulled?
#17: 
Fixes: b3f9d6e491fd ("usb: typec: hd3ss3220: Check if regulator needs to be switched")

Analysis: These warnings are expected and benign. Both commits are backports/cherry-picks from upstream:

  1. Commit 7904cd8 (UPSTREAM:) - References 27fbc19e52b9 which is an upstream commit not yet in the Qualcomm tree
  2. Commit 12aa1d7 (FROMLIST:) - References b3f9d6e491fd which is also an upstream commit

The Fixes: tags are correct and follow kernel conventions. They reference the original upstream commits that introduced the bugs being fixed. When these patches are merged into the Qualcomm tree, the Fixes: tags will remain valid for upstream tracking purposes, even though the referenced SHAs don't exist locally.

Fix: No action required. This is standard practice for backporting upstream fixes. The Fixes: tags should be preserved as-is for proper upstream attribution and stable kernel tracking.

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git 795bab7bf1d6..12aa1d730bee

Verdict

Ready to merge. All critical checkers passed. The checkpatch warnings are expected for backported patches with upstream Fixes: tags and do not indicate any defect in the patches themselves. Both commits:

  • Have proper subject prefixes (UPSTREAM:, FROMLIST:)
  • Include valid Link: tags to upstream sources
  • Pass patch compliance checks
  • Make focused, correct changes to fix VBUS regulator issues

The patches fix legitimate bugs:

  1. 7904cd8: Corrects misleading error messages (enable/disable swapped)
  2. 12aa1d7: Fixes unbalanced regulator reference counting

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