Linux PCI subsystem development
 help / color / mirror / Atom feed
* [PATCH RFC] power: sequencing: pcie-m2: stop requiring subsystem IDs for WCN6855/WCN7850
@ 2026-11-06 11:09 Jens Glathe via B4 Relay
  2026-11-06 11:26 ` sashiko-bot
  0 siblings, 1 reply; 4+ messages in thread
From: Jens Glathe via B4 Relay @ 2026-11-06 11:09 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Bartosz Golaszewski, Wei Deng
  Cc: Bartosz Golaszewski, linux-pci, linux-pm, linux-kernel,
	Jens Glathe

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

Commit a39ac4651e3b ("power: sequencing: pcie-m2: Match WCN6855 and
WCN7851 UART BT variants by subdevice ID") narrowed the PCI match for
the WCN6855/WCN7850 family from PCI_DEVICE() to PCI_DEVICE_SUB() in
order to avoid creating a UART serdev on USB-BT variants that share
the same device ID.

The practical result is that every legitimate UART-BT board must now be
explicitly listed. Missing entries (e.g. Lenovo T14s Gen 6, subsystem
17aa:e0e9) silently prevent serdev creation even though the DT graph
already describes a UART link on the connector.

The graph link is the reliable signal that a UART BT interface exists.
Once it is present, the vendor + device ID is sufficient to select the
correct compatible string for the dynamically created node. A pure
USB-BT card simply has no UART graph endpoint, so no serdev is created.

Keep a single PCI_DEVICE_SUB() entry for the QCA2066 (which shares the
1103 ID but needs distinct BT driver data) and fall back to bare
PCI_DEVICE() matches for the rest of the 1103 and 1107 families.

This removes the growing OEM subsystem-ID catalog from the critical
path while preserving the one case that actually needs a subsystem
distinction.

Fixes: a39ac4651e3b ("power: sequencing: pcie-m2: Match WCN6855 and WCN7851 UART BT variants by subdevice ID")

Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 drivers/power/sequencing/pwrseq-pcie-m2.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequencing/pwrseq-pcie-m2.c
index 56c5d51293c10..72c721149dfae 100644
--- a/drivers/power/sequencing/pwrseq-pcie-m2.c
+++ b/drivers/power/sequencing/pwrseq-pcie-m2.c
@@ -217,15 +217,9 @@ static const struct pci_device_id pwrseq_m2_pci_ids[] = {
 	  .driver_data = (kernel_ulong_t)"nxp,88w8987-bt" },
 	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x1103, PCI_VENDOR_ID_QCOM, 0x0108),
 	  .driver_data = (kernel_ulong_t)"qcom,qca2066-bt" },
-	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x1103, PCI_VENDOR_ID_FOXCONN, 0xe105),
+	{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1103),
 	  .driver_data = (kernel_ulong_t)"qcom,wcn6855-bt" },
-	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x1103, PCI_VENDOR_ID_QCOM, 0x337e),
-	  .driver_data = (kernel_ulong_t)"qcom,wcn6855-bt" },
-	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x1107, PCI_VENDOR_ID_QCOM, 0x337c),
-	  .driver_data = (kernel_ulong_t)"qcom,wcn7850-bt" },
-	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x1107, PCI_VENDOR_ID_LENOVO, 0xe0e9),
-	  .driver_data = (kernel_ulong_t)"qcom,wcn7850-bt" },
-	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x1107, PCI_VENDOR_ID_FOXCONN, 0xe0ee),
+	{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1107),
 	  .driver_data = (kernel_ulong_t)"qcom,wcn7850-bt" },
 	{ } /* Sentinel */
 };

---
base-commit: ddfe51b0a0f5dc9e415cc2c8ad8db17532dd426b
change-id: 20261106-pwrseq-bt-subsystem-249c78e802cb

Best regards,
-- 
Jens Glathe <jens.glathe@oldschoolsolutions.biz>



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-11-12 14:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-06 11:09 [PATCH RFC] power: sequencing: pcie-m2: stop requiring subsystem IDs for WCN6855/WCN7850 Jens Glathe via B4 Relay
2026-11-06 11:26 ` sashiko-bot
2026-11-06 18:30   ` Jens Glathe
2026-11-12 14:43     ` Manivannan Sadhasivam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox