PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Mon, 13 Feb 2023 14:49:22 +0000 (20:19 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 14 Feb 2023 17:47:49 +0000 (11:47 -0600)
commit82b34b0800af8c9fc9988c290cdc813e0ca0df31
treedfeb6b79cacea74098fcb0738538612f753cf45c
parent1b929c02afd37871d5afb9d498426f83432e71c2
PCI: pciehp: Add Qualcomm quirk for Command Completed erratum

The Qualcomm PCI bridge device (Device ID 0x010e) found in chipsets such as
SC8280XP used in Lenovo Thinkpad X13s, does not set the Command Completed
bit unless writes to the Slot Command register change "Control" bits.

This results in timeouts like below during boot and resume from suspend:

  pcieport 0002:00:00.0: pciehp: Timeout on hotplug command 0x03c0 (issued 2020 msec ago)
  ...
  pcieport 0002:00:00.0: pciehp: Timeout on hotplug command 0x13f1 (issued 107724 msec ago)

Add the device to the Command Completed quirk to mark commands "completed"
immediately unless they change the "Control" bits.

Link: https://lore.kernel.org/r/20230213144922.89982-1-manivannan.sadhasivam@linaro.org
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/hotplug/pciehp_hpc.c