Re: [PATCH v7 7/8] PCI: Enable NO_BUS_RESET quirk for Nvidia GPUs

From: Bjorn Helgaas
Date: Thu Jun 10 2021 - 19:16:20 EST


On Tue, Jun 08, 2021 at 11:18:56AM +0530, Amey Narkhede wrote:
> From: Shanker Donthineni <sdonthineni@xxxxxxxxxx>
>
> On select platforms, some Nvidia GPU devices do not work with SBR.

Interesting that you say "on select platforms." Apparently SBR does
work for some of these GPUs, but not on all platforms? If you have
any clarification here, I can still update the commit log.

> Triggering SBR would leave 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 fix the issue.
>
> This issue will be fixed in the next generation of hardware.
>
> Signed-off-by: Shanker Donthineni <sdonthineni@xxxxxxxxxx>
> Reviewed-by: Sinan Kaya <okaya@xxxxxxxxxx>

This patch doesn't seem to have any dependencies or particular
connection to the rest of the reset series, so I applied this patch by
itself to for-linus for v5.13 and marked it for stable.

If that's not right, let me know.

> ---
> drivers/pci/quirks.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index e86cf4a3b..45a8c3caa 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -3546,6 +3546,18 @@ static void quirk_no_bus_reset(struct pci_dev *dev)
> 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.
> * The device will throw a Link Down error on AER-capable systems and
> --
> 2.31.1
>