Re: [PATCH V3] PCI: Add quirk for AMD Navi14 to disable ATS support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 02, 2021 at 10:12:55AM +0800, Evan Quan wrote:
> Unexpected GPU hang was observed during runpm stress test
> on 0x7341 rev 0x00. Further debugging shows broken ATS is
> related. Thus as a followup of commit 5e89cd303e3a ("PCI:
> Mark AMD Navi14 GPU rev 0xc5 ATS as broken"), we disable
> the ATS for the specific SKU also.
> 
> Signed-off-by: Evan Quan <evan.quan@xxxxxxx>
> Suggested-by: Alex Deucher <alexander.deucher@xxxxxxx>
> Reviewed-by: Krzysztof Wilczyński <kw@xxxxxxxxx>

Applied to pci/virtualization for v5.14, thanks.

I updated the commit log like this:

    PCI: Mark AMD Navi14 GPU ATS as broken

    Observed unexpected GPU hang during runpm stress test on 0x7341 rev 0x00.
    Further debugging shows broken ATS is related.

    Disable ATS on this part.  Similar issues on other devices:

      a2da5d8cc0b0 ("PCI: Mark AMD Raven iGPU ATS as broken in some platforms")
      45beb31d3afb ("PCI: Mark AMD Navi10 GPU rev 0x00 ATS as broken")
      5e89cd303e3a ("PCI: Mark AMD Navi14 GPU rev 0xc5 ATS as broken")

    Suggested-by: Alex Deucher <alexander.deucher@xxxxxxx>
    Link: https://lore.kernel.org/r/20210602021255.939090-1-evan.quan@xxxxxxx
    Signed-off-by: Evan Quan <evan.quan@xxxxxxx>
    Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
    Reviewed-by: Krzysztof Wilczyński <kw@xxxxxxxxx>

> ---
> ChangeLog v2->v3:
> - further update for description part(suggested by Krzysztof)
> ChangeLog v1->v2:
> - cosmetic fix for description part(suggested by Krzysztof)
> ---
>  drivers/pci/quirks.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index b7e19bbb901a..70803ad6d2ac 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -5176,7 +5176,8 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags);
>  static void quirk_amd_harvest_no_ats(struct pci_dev *pdev)
>  {
>  	if ((pdev->device == 0x7312 && pdev->revision != 0x00) ||
> -	    (pdev->device == 0x7340 && pdev->revision != 0xc5))
> +	    (pdev->device == 0x7340 && pdev->revision != 0xc5) ||
> +	    (pdev->device == 0x7341 && pdev->revision != 0x00))
>  		return;
>  
>  	if (pdev->device == 0x15d8) {
> @@ -5203,6 +5204,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_amd_harvest_no_ats);
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7312, quirk_amd_harvest_no_ats);
>  /* AMD Navi14 dGPU */
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7340, quirk_amd_harvest_no_ats);
> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7341, quirk_amd_harvest_no_ats);
>  /* AMD Raven platform iGPU */
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x15d8, quirk_amd_harvest_no_ats);
>  #endif /* CONFIG_PCI_ATS */
> -- 
> 2.29.0
> 



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux