Skip to content

hci_qca: Add M.2 Bluetooth device support using pwrseq#1263

Closed
WeiDeng-weiden wants to merge 3 commits into
qualcomm-linux:tech/net/bluetoothfrom
WeiDeng-weiden:tech/net/bluetooth
Closed

hci_qca: Add M.2 Bluetooth device support using pwrseq#1263
WeiDeng-weiden wants to merge 3 commits into
qualcomm-linux:tech/net/bluetoothfrom
WeiDeng-weiden:tech/net/bluetooth

Conversation

@WeiDeng-weiden
Copy link
Copy Markdown

@WeiDeng-weiden WeiDeng-weiden commented May 28, 2026

Add support for controlling the power supply to an M.2 Bluetooth device using the uart pwrseq device. Also allows the driver to detect whether it can control the BT_EN (W_DISABLE2#) signal on the connector and set the HCI_QUIRK_NON_PERSISTENT_SETUP quirk accordingly.

All patches are from the same upstream series as tech/bus/pci/all: https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com

Depends on: PR: #1262, tech/bus/pci/all — the pwrseq_to_device() API added in that branch is required by patch 7/9 (hci_qca: Add M.2 Bluetooth device support).

CRs-Fixed: 4552421

…pwrseq

Power supply to the M.2 Bluetooth device attached to the host using M.2
connector is controlled using the 'uart' pwrseq device. So add support for
getting the pwrseq device if the OF graph link is present. Once obtained,
the existing pwrseq APIs can be used to control the power supplies of the
M.2 card.

Tested-by: Wei Deng <wei.deng@oss.qualcomm.com>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com
…vailable'

'power_ctrl_enabled' flag is used to indicate the availability of the BT_EN
GPIO in devicetree. But the naming causes confusion with the new pwrctrl
framework.

So rename it to 'bt_en_available' to make it clear and explicit.

Tested-by: Wei Deng <wei.deng@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com
…E2# presence in M.2 connector

Check if the M.2 connector supports the W_DISABLE2# property or not by
querying the pwrseq provider's DT node. If not available, then set
'bt_en_available' flag to 'false'. This flag is used to set the
HCI_QUIRK_NON_PERSISTENT_SETUP HCI quirk, which informs the HCI layer
whether the shutdown() callback for the device can be triggered or not.

Tested-by: Wei Deng <wei.deng@oss.qualcomm.com>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com
@qswat-orbit-external
Copy link
Copy Markdown

Merge Check Failed: No Component Found

Configuration Error: No component found for branch 'tech/net/bluetooth'.

There is no component associated with the provided branch in Polaris. Please verify the branch configuration.

Branch: tech/net/bluetooth

@qcomlnxci qcomlnxci requested review from a team, che-jiang and quic-mohamull and removed request for a team May 28, 2026 05:25
@qlijarvis
Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1263

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

# Error File:Line PR-introduced? Root Cause
1 implicit declaration of function 'pwrseq_to_device' drivers/bluetooth/hci_qca.c:2458 Yes Missing dependency: PR #1262 must be merged first to provide the pwrseq_to_device() API

Verdict

1 of 1 errors is introduced by this PR due to a missing dependency (PR #1262).

📎 Detailed analysis: Full report

@qlijarvis
Copy link
Copy Markdown

PR #1263 — validate-patch

PR: #1263

Verdict Issues Detailed Report
⚠️ 5 Full report

Final Summary

  1. Lore link present: Yes — all 3 commits link to https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com (cover letter message-ID)
  2. Lore link matches PR commits: Cannot verify — lore.kernel.org unreachable due to network restrictions; commit structure and metadata appear correct
  3. Upstream patch status: Cannot verify — network restricted; FROMLIST: prefix indicates patches posted to mailing list but not yet merged
  4. PR present in qcom-next: No — commits not found in qcom-next branch (expected for FROMLIST: patches awaiting upstream acceptance)
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #1263 - FROMLIST: Bluetooth: hci_qca M.2 pwrseq support (3 commits)
Upstream commit: https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com
Verdict: ⚠️ PARTIAL (network-restricted validation)

Commit Message

Check Status Note
Subject matches upstream ⚠️ Cannot verify - lore.kernel.org unreachable; subjects appear well-formed
Body preserves rationale ⚠️ Cannot verify - network restricted; bodies present and descriptive
Fixes tag present/correct N/A - new feature, no Fixes tag required
Authorship preserved FROMLIST: author Manivannan Sadhasivam in From: and Signed-off-by: ✓
Backport note (if applicable) N/A FROMLIST: prefix correct for mailing-list patches

Diff

File Status Notes
drivers/bluetooth/hci_qca.c (1/3) ⚠️ Cannot verify against lore - adds pwrseq support for M.2 BT (13 lines)
drivers/bluetooth/hci_qca.c (2/3) ⚠️ Cannot verify against lore - renames power_ctrl_enabled → bt_en_available (8 lines)
drivers/bluetooth/hci_qca.c (3/3) ⚠️ Cannot verify against lore - adds W_DISABLE2# check (7 lines)

Issues

  • Network restriction: Cannot fetch from lore.kernel.org to verify diff content matches upstream posting
  • Cover letter link: All three commits reference the same message-ID (20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com), which appears to be the cover letter (note -0- in ID). Individual patch message-IDs would be more precise (e.g., -1-, -2-, -3-), but using the cover letter link is acceptable practice
  • Commit message quality: All commits have well-structured messages with clear subjects, descriptive bodies, and proper review tags (Tested-by, Reviewed-by)
  • Authorship: Correct for FROMLIST: prefix - author Manivannan Sadhasivam appears in both From: and Signed-off-by: fields
  • Logical series: The three patches form a coherent series: (1) add M.2 pwrseq support, (2) refactor variable naming, (3) enhance with W_DISABLE2# detection

Verdict

⚠️ PARTIAL - Commit structure and metadata are correct, but diff content cannot be verified against lore.kernel.org due to network restrictions. Manual verification recommended before merge.

What's correct:

  • FROMLIST: prefix appropriate for mailing-list patches
  • Authorship and sign-off chains intact
  • Review tags present (Tested-by, 2× Reviewed-by per commit)
  • Link: tags point to lore.kernel.org
  • Logical patch series structure

Cannot verify (network restricted):

  • Exact diff match against lore posting
  • Whether this is the latest revision (v3 indicated)
  • Upstream acceptance status

Final Summary

  1. Lore link present: Yes — all 3 commits link to https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com (cover letter message-ID)
  2. Lore link matches PR commits: Cannot verify — lore.kernel.org unreachable due to network restrictions; commit structure and metadata appear correct
  3. Upstream patch status: Cannot verify — network restricted; FROMLIST: prefix indicates patches posted to mailing list but not yet merged
  4. PR present in qcom-next: No — commits not found in qcom-next branch (expected for FROMLIST: patches awaiting upstream acceptance)

@qlijarvis
Copy link
Copy Markdown

PR #1263 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch All 3 commits passed
dt-binding-check ⏭️ Skipped - no DT binding changes
dtb-check ⏭️ Skipped - no DTS changes
sparse-check Passed (sparse not available warning is benign)
check-uapi-headers No UAPI changes detected
check-patch-compliance All 3 commits failed - invalid Link tag format
tag-check All commits have valid FROMLIST: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1263 - FROMLIST: Bluetooth: hci_qca: Add M.2 Bluetooth device support using pwrseq
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/26556470850

Checker Result Summary
checkpatch All 3 commits passed
dt-binding-check ⏭️ Skipped - no DT binding changes
dtb-check ⏭️ Skipped - no DTS changes
sparse-check Passed (sparse not available warning is benign)
check-uapi-headers No UAPI changes detected
check-patch-compliance All 3 commits failed - invalid Link tag format
tag-check All commits have valid FROMLIST: prefix

❌ check-patch-compliance

Root cause: All three commits use a cover letter Link tag (v3-0) instead of individual patch Link tags (v3-1, v3-2, v3-3).

Failure details:

Checking commit: FROMLIST: Bluetooth: hci_qca: Add M.2 Bluetooth device support using pwrseq
Something seems wrong with the provided link. Please verify it
Try below command to run locally-
b4 am --single-message -C -l -3 https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com

Checking commit: FROMLIST: Bluetooth: hci_qca: Rename 'power_ctrl_enabled' to 'bt_en_available'
Something seems wrong with the provided link. Please verify it
Try below command to run locally-
b4 am --single-message -C -l -3 https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com

Checking commit: FROMLIST: Bluetooth: hci_qca: Set 'bt_en_available' based on W_DISABLE2# presence in M.2 connector
Something seems wrong with the provided link. Please verify it
Try below command to run locally-
b4 am --single-message -C -l -3 https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com

The Link tag in all three commits points to:

Link: https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com

The message ID 20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966 contains -v3-0-, where the 0 indicates this is the cover letter (patch 0/3), not an individual patch. The check-patch-compliance checker uses b4 am --single-message to fetch and compare each commit against its upstream version, but a cover letter cannot be fetched as a single patch.

Fix: Update the Link tag in each commit to point to the correct individual patch message ID:

  • Commit 1/3 should link to: 20260519-pwrseq-m2-bt-v3-1-b39dc2ae3966@oss.qualcomm.com (v3-1)
  • Commit 2/3 should link to: 20260519-pwrseq-m2-bt-v3-2-b39dc2ae3966@oss.qualcomm.com (v3-2)
  • Commit 3/3 should link to: 20260519-pwrseq-m2-bt-v3-3-b39dc2ae3966@oss.qualcomm.com (v3-3)

Steps to fix:

# For each commit, amend the Link tag
git rebase -i <base_sha>   # mark each commit as 'edit'

# For commit 1/3:
git commit --amend
# Change Link: line to:
# Link: https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-1-b39dc2ae3966@oss.qualcomm.com

# For commit 2/3:
git rebase --continue
git commit --amend
# Change Link: line to:
# Link: https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-2-b39dc2ae3966@oss.qualcomm.com

# For commit 3/3:
git rebase --continue
git commit --amend
# Change Link: line to:
# Link: https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-3-b39dc2ae3966@oss.qualcomm.com

git rebase --continue

Reproduce locally:

# Verify the cover letter link fails:
b4 am --single-message -C -l -3 https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-0-b39dc2ae3966@oss.qualcomm.com

# Verify individual patch links work:
b4 am --single-message -C -l -3 https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-1-b39dc2ae3966@oss.qualcomm.com
b4 am --single-message -C -l -3 https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-2-b39dc2ae3966@oss.qualcomm.com
b4 am --single-message -C -l -3 https://lore.kernel.org/r/20260519-pwrseq-m2-bt-v3-3-b39dc2ae3966@oss.qualcomm.com

Verdict

1 blocker to fix: All three commits have incorrect Link tags pointing to the cover letter instead of individual patches. Update each commit's Link tag to point to its corresponding patch message ID (v3-1, v3-2, v3-3) before merging.

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.

3 participants