Re: [PATCH v8 3/3] PCI: Disable broken bus reset on Qualcomm devices
Bjorn Helgaas <[email protected]> Wed, 10 Jun 2026 14:40:10 -0500
| Newsgroups | dev.linux.lists.mhi,org.infradead.lists.ath11k,org.infradead.lists.ath12k,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci,org.kernel.vger.linux-wireless |
|---|---|
| Message-ID | <20260610194010.GA376413@bhelgaas> |
On Tue, Jun 09, 2026 at 06:36:49PM +0200, Jose Ignacio Tornos Martinez wrote: > Some Qualcomm PCIe devices (WCN6855/WCN7850 WiFi cards, SDX62/SDX65 modems) > do not properly support Secondary Bus Reset (SBR). > > Testing confirms this is device-specific, not deployment-specific: > MediaTek MT7925e successfully uses bus reset through the same passive > M.2-to-PCIe adapters where Qualcomm devices fail, proving PERST# is > properly wired through the adapters. > > This quirk acts as a safety net, preventing the broken bus reset from being > attempted if users override reset methods (device_specific or d3cold when > available) via sysfs. > > Signed-off-by: Jose Ignacio Tornos Martinez <[email protected]> Applied this patch (3/3 only) to pci/virtualization for v7.2, thanks! It looks like the D3cold parts are still being ironed out. > --- > v8: code unchanged from v7 > v7: https://lore.kernel.org/all/[email protected]/ > > drivers/pci/quirks.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 000000000000..111111111111 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -3789,6 +3789,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0030, quirk_no_bus_reset); > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0032, quirk_no_bus_reset); > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x003c, quirk_no_bus_reset); > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0033, quirk_no_bus_reset); > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0034, quirk_no_bus_reset); > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x003e, quirk_no_bus_reset); > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_QCOM, 0x1103, quirk_no_bus_reset); /* WCN6855 */ > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_QCOM, 0x1107, quirk_no_bus_reset); /* WCN7850 */ > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_QCOM, 0x0308, quirk_no_bus_reset); /* SDX62/SDX65 */ > > /* > * Root port on some Cavium CN8xxx chips do not successfully complete a bus > -- > 2.53.0 >