Skip to content

WORKAROUND: power: sequencing: qcom-wcn: skip BT devices without bt-enable GPIO#689

Open
shuaz-shuai wants to merge 1 commit into
qualcomm-linux:qcom-6.18.yfrom
shuaz-shuai:rb1_bug
Open

WORKAROUND: power: sequencing: qcom-wcn: skip BT devices without bt-enable GPIO#689
shuaz-shuai wants to merge 1 commit into
qualcomm-linux:qcom-6.18.yfrom
shuaz-shuai:rb1_bug

Conversation

@shuaz-shuai

Copy link
Copy Markdown
Contributor

Add a bt_gpio_required flag to the per-platform data to indicate that a chip's BT enable path requires a dedicated GPIO. Only skip matching the "bluetooth" device node when this flag is set and bt_gpio is absent.

Previously the bt_gpio check was applied unconditionally, which caused chips like WCN3990 that have no separate BT/WLAN enable pins by design to fail matching even when bt-enable GPIO is legitimately absent from the DT. Set bt_gpio_required for WCN6855 and WCN7850 which do require a dedicated BT enable GPIO.

The qcom-6.18.y branch also needs to fix this issue.
Fix-issues: #625

…nable GPIO

Add a bt_gpio_required flag to the per-platform data to indicate that
a chip's BT enable path requires a dedicated GPIO.  Only skip matching
the "bluetooth" device node when this flag is set and bt_gpio is absent.

Previously the bt_gpio check was applied unconditionally, which caused
chips like WCN3990 that have no separate BT/WLAN enable pins by design
to fail matching even when bt-enable GPIO is legitimately absent from
the DT.  Set bt_gpio_required for WCN6855 and WCN7850 which do require
a dedicated BT enable GPIO.

Fix-issues: qualcomm-linux#625
Signed-off-by: Shuai Zhang <shuai.zhang@oss.qualcomm.com>
@shuaz-shuai shuaz-shuai requested review from a team, rrnayak, sgaud-quic and yijiyang June 10, 2026 12:14
@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 #689 — validate-patch

PR: #689

Verdict Issues Detailed Report
⚠️ 3 Full report

Final Summary

  1. Lore link present: No — WORKAROUND: prefix indicates vendor-specific workaround; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: Not upstream — explicitly marked as WORKAROUND for vendor tree only
  4. PR present in qcom-next: Not checked — WORKAROUND: vendor-only commit not intended for upstream submission
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #689 - WORKAROUND: power: sequencing: qcom-wcn: skip BT devices without bt-enable GPIO
Upstream commit: N/A (vendor workaround)
Verdict: ⚠️ PARTIAL

Commit Message

Check Status Note
Subject matches upstream N/A WORKAROUND prefix indicates vendor-only change
Body preserves rationale Clear explanation of problem and solution
Fixes tag present/correct ⚠️ Uses Fix-issues (vendor tag) instead of standard Fixes: tag
Authorship preserved Original author Shuai Zhang
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
drivers/power/sequencing/pwrseq-qcom-wcn.c Focused change; adds bt_gpio_required flag and updates matching logic

Issues

  • Non-standard tag: Uses Fix-issues: qualcomm-linux/kernel#625 instead of standard kernel Fixes: tag format. For vendor trees this is acceptable but differs from upstream conventions.
  • No Link: tag: Missing lore.kernel.org reference, but expected for WORKAROUND patches that aren't intended for upstream submission.
  • WORKAROUND prefix: Indicates temporary/vendor-specific solution rather than proper upstream fix. Consider whether this should eventually be replaced with an upstream-acceptable solution.

Verdict

Acceptable as vendor workaround; commit message clearly explains the issue and solution, code changes are minimal and focused, but this is explicitly marked as a workaround rather than a proper fix.

Final Summary

  1. Lore link present: No — WORKAROUND: prefix indicates vendor-specific workaround; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: Not upstream — explicitly marked as WORKAROUND for vendor tree only
  4. PR present in qcom-next: Not checked — WORKAROUND: vendor-only commit not intended for upstream submission

@qlijarvis

Copy link
Copy Markdown

PR #689 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch No style issues detected
dt-binding-check ⏭️ Skipped - no DT binding changes
dtb-check ⏭️ Skipped - no devicetree changes
sparse-check Passed (unrelated sparse warnings in other drivers)
check-uapi-headers No UAPI header changes
check-patch-compliance Subject prefix violation
tag-check N/A Not applicable for qcom-6.18.y
qcom-next-check N/A Not applicable for qcom-6.18.y

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #689 - WORKAROUND: power: sequencing: qcom-wcn: skip BT devices without bt-enable GPIO
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/27275543233

Checker Result Summary
checkpatch No style issues detected
dt-binding-check ⏭️ Skipped - no DT binding changes
dtb-check ⏭️ Skipped - no devicetree changes
sparse-check Passed (unrelated sparse warnings in other drivers)
check-uapi-headers No UAPI header changes
check-patch-compliance Subject prefix violation
tag-check N/A Not applicable for qcom-6.18.y
qcom-next-check N/A Not applicable for qcom-6.18.y

❌ check-patch-compliance

Root cause: Commit subject starts with WORKAROUND: which is not a recognized prefix for the qualcomm-linux/kernel repository.

Failure details:

Checking commit: WORKAROUND: power: sequencing: qcom-wcn: skip BT devices without bt-enable GPIO
Commit summary does not start with a required prefix

Fix: Replace the WORKAROUND: prefix with one of the accepted prefixes. Based on the patch content and context:

  1. Recommended: Use FROMGIT: if this fix is already accepted upstream (check lore.kernel.org)
  2. Alternative: Use FROMLIST: if the fix is posted upstream but not yet merged
  3. If internal-only: Use ANDROID: or QCOM: depending on the subsystem ownership

The commit message should follow this format:

<PREFIX>: power: sequencing: qcom-wcn: skip BT devices without bt-enable GPIO

For example:

FROMLIST: power: sequencing: qcom-wcn: skip BT devices without bt-enable GPIO

Additional context: The patch adds a bt_gpio_required flag to handle chips like WCN3990 that have no separate BT/WLAN enable pins by design. This is a legitimate fix, not a workaround. Consider:

  • Checking if this fix exists upstream in the power sequencing subsystem
  • If upstream, use FROMGIT: or UPSTREAM: with the upstream commit reference
  • If not upstream, consider submitting it upstream first, then use FROMLIST:

Reproduce locally:

cd /path/to/kernel
git log -1 --format=%s cc1f9e565f6fac2b51a42f69d0cdbb940f4f7d7d | \
  grep -E '^(UPSTREAM|FROMGIT|FROMLIST|BACKPORT|ANDROID|QCOM|Revert):'

Verdict

1 blocker to fix: The commit subject prefix must be changed from WORKAROUND: to an accepted prefix (FROMLIST:, FROMGIT:, UPSTREAM:, ANDROID:, or QCOM:). All other checkers passed or were correctly skipped.

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 x1e80100-crd
BT_FW_KMD_Service ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_ON_OFF ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_SCAN ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPU_affinity ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
DSP_AudioPD ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ⚠️ skip ◻️
Ethernet ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ◻️
Freq_Scaling ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
GIC ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
IPA ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Interrupts ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
OpenCV ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
PCIe ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Probe_Failure_Check ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ◻️
RMNET ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
UFS_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
USBHost ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ◻️
WiFi_Firmware_Driver ❌ Fail ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
WiFi_OnOff ✅ Pass ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
adsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
gpdsp_remoteproc ✅ Pass ✅ Pass ⚠️ skip ⚠️ skip ✅ Pass ❌ Fail ◻️
hotplug ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
irq ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
kaslr ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
pinctrl ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
qcom_hwrng ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
rngtest ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
shmbridge ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
smmu ❌ Fail ✅ Pass ❌ Fail ✅ Pass ✅ Pass ❌ Fail ◻️
watchdog ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants