PCI: Mark some NVIDIA GPUs to avoid bus reset
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
This commit is contained in:
Родитель
b5cf198e74
Коммит
4c207e7121
|
@ -3546,6 +3546,18 @@ static void quirk_no_bus_reset(struct pci_dev *dev)
|
||||||
dev->dev_flags |= PCI_DEV_FLAGS_NO_BUS_RESET;
|
dev->dev_flags |= PCI_DEV_FLAGS_NO_BUS_RESET;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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.
|
* 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
|
* The device will throw a Link Down error on AER-capable systems and
|
||||||
|
|
Загрузка…
Ссылка в новой задаче