power: sequencing: pcie-m2: Hamoa M.2 BT USB/UART coexistence support - #1628
power: sequencing: pcie-m2: Hamoa M.2 BT USB/UART coexistence support#1628weiden (WeiDeng-weiden) wants to merge 2 commits into
Conversation
…T variants by subdevice ID The WCN6855 and WCN7851 combo chips are available in M.2 card variants that differ by their BT interface: some expose BT over UART while others expose BT over USB. Both variants use the same PCIe device ID for the WiFi interface, distinguished only by their sub-system device ID. The bare PCI_DEVICE() entries match all sub-system IDs, so both UART and USB variants hit the same table entry and trigger UART serdev creation. For USB variants this is wrong — there is no UART BT interface on such a card, and the serdev probe will fail. Narrow the matches to UART variants only by using PCI_DEVICE_SUB with their respective sub-system IDs, so USB variants no longer trigger UART serdev creation. Reviewed-by: Manivannan Sadhasivam <mani@kernel.org> Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com> Link: https://patch.msgid.link/20260724-hamoa-m2-sub-id-v2-v3-1-af97de70bbbe@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
…RT serdev is created The pwrseq_m2_pci_ids[] table lists PCIe BT devices that use UART as the BT transport and need a UART serdev created by the driver. When a PCIe device under the M.2 connector does not match any entry in this table, no UART serdev is created. However, the BT subsystem of such a device may still require W_DISABLE2# to be deasserted to power up. Rather than adding every possible non-UART BT device ID to the table, add an else branch that deasserts W_DISABLE2# whenever a PCIe device is detected under the connector but does not match a UART BT entry. This allows any BT interface on the card (USB or other) to enumerate without requiring explicit knowledge of its device ID. The primary use case is USB BT variants of combo chips that share the same PCIe device ID as their UART counterpart (e.g. WCN7851 NCM865 USB, sub 0x3378, vs NCM865A UART, sub 0x337c): no UART serdev is needed, but W_DISABLE2# must be deasserted so the USB BT device can enumerate. Reassert W_DISABLE2# symmetrically when the PCIe device is removed. Validated on Hamoa EVK (IQ-X7181-EVK) with WCN7851 NCM865 USB card (sub 0x3378): without this change GPIO116 (W_DISABLE2#) stays low and no BT interface appears; with this change GPIO116 is driven high and the USB BT device enumerates and comes up via btusb. Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com> Link: https://lore.kernel.org/all/20260709-fix-hamoa-m2-w-disable2-v1-3-5e725091266a@oss.qualcomm.com/
🔨 Build Failure Analysis — PR #1628PR: #1628
VerdictThis is NOT a compilation error. The build failed during the automerge step due to a pre-existing merge conflict in a file unrelated to the PR changes. The PR itself introduces no build errors. 📎 Detailed analysis: Full report |
🔨 Build Failure Analysis — PR #1628PR: #1628
VerdictThis is not a compilation failure. The build failed during the pre-merge automerge step due to a merge conflict in 📎 Detailed analysis: Full report |
PR #1628 — validate-patchPR: #1628
Final Summary
|
PR #1628 — checker-log-analyzerPR: #1628
Detailed report: Full report
|
|
Hi krishnachaitanya-linux , |
|
Hi Matthew Leung (@meleung), |
Two changes to enable USB/UART BT coexistence on Hamoa M.2 connector:
FROMGIT: Match WCN6855 and WCN7851 UART BT variants by subdevice ID
FROMLIST: Deassert W_DISABLE2# when no UART serdev is created
CRs-Fixed: 4630764