summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorShanker Donthineni <sdonthineni@nvidia.com>2021-06-08 11:18:56 +0530
committerSasha Levin <sashal@kernel.org>2021-06-30 08:48:53 -0400
commit0deb965d5bed0c367f175b988487c8b524bb061e (patch)
treef8778953ea6b0b94832f7ef67b94fcb1c06629e8 /drivers
parent159111174439c1ca280372e1aa10429b9b22043f (diff)
downloadlinux-0deb965d5bed0c367f175b988487c8b524bb061e.tar.gz
linux-0deb965d5bed0c367f175b988487c8b524bb061e.tar.bz2
linux-0deb965d5bed0c367f175b988487c8b524bb061e.zip
PCI: Mark some NVIDIA GPUs to avoid bus reset
commit 4c207e7121fa92b66bf1896bf8ccb9edfb0f9731 upstream. Some NVIDIA GPU devices do not work with SBR. Triggering SBR leaves the device inoperable for the current system boot. It requires a system hard-reboot to get the GPU device back to normal operating condition post-SBR. For the affected devices, enable NO_BUS_RESET quirk to avoid the issue. This issue will be fixed in the next generation of hardware. Link: https://lore.kernel.org/r/20210608054857.18963-8-ameynarkhede03@gmail.com Signed-off-by: Shanker Donthineni <sdonthineni@nvidia.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Sinan Kaya <okaya@kernel.org> Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/quirks.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index f0cd8f7ce881..de7d65971d7f 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3390,6 +3390,18 @@ static void quirk_no_bus_reset(struct pci_dev *dev)
}
/*
+ * Some NVIDIA GPU devices do not work with bus reset, SBR needs to be
+ * prevented for those affected devices.
+ */
+static void quirk_nvidia_no_bus_reset(struct pci_dev *dev)
+{
+ if ((dev->device & 0xffc0) == 0x2340)
+ quirk_no_bus_reset(dev);
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
+ quirk_nvidia_no_bus_reset);
+
+/*
* Some Atheros AR9xxx and QCA988x chips do not behave after a bus reset.
* The device will throw a Link Down error on AER-capable systems and
* regardless of AER, config space of the device is never accessible again