Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp448132ybl; Tue, 28 Jan 2020 06:09:25 -0800 (PST) X-Google-Smtp-Source: APXvYqwqN3etb6OINru6wDWLyFzrKBbuVe9RKIeShYeeVTmB9k/ZwHAgQtf07D/Eu1nskyjd/0OB X-Received: by 2002:a9d:63d6:: with SMTP id e22mr16631618otl.72.1580220565683; Tue, 28 Jan 2020 06:09:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580220565; cv=none; d=google.com; s=arc-20160816; b=eUDckM9exDl0WbKkaQBvkFdwpJIdabyEprwSw+ClwIEA2VS2t5Gu2lahYSSAOIr/dJ KCP1E8oErN2xACC2F0YfwRUUwBwsvweKB58cJMYeOM2k6+t0MOBv+Qju+zPFDZYSohbF DgigZCBWbxxyBqCIbn3aIHAWhK6ReZ3/5pmvIzxVJrpDN66qACdYMx7vWdo5925UfxNJ DQZyeVmqxVZrquXyuukK0LVVUycw6nnEgm7q0GYOHh5wkfRdZE5gg+cO0hRHL78VkN3h XTTtqSgXX8oktvmowDXtHgD1Aj9TKwYF15AMcByS02AuWXgXMI9xhmab0NtstdoUpWLF eCeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Kl1q196oVZeh7k/U9GLjYumA6nTdUE11YVKB3s3iqn8=; b=zt+Phz7DXsUDXjfRGKffek8VySUAWJ7a2pBfL0SVvRQ4vB6ZVnkQL1G3oDXAJNRd2Y rsJbkyF9GGkYXTJy98e6riQFJA4xCxTu0fx6TM4AT975B9CY2pucYvkOMS3316vsegXc 6lG7+5YUaOW1i8Qs1PUCCkLtdbckdH78BvBG3FPDBzQmcnKh2W9oOLMtEHIcv1z8X41b YzYTwOQ3pBBL9TJ8TfUTIYibtPVeSkDVf8XZuJoknhLX09LD2MVIVcsK8K2tL9VluZfU I9DlfufQ2FHXywSd2+vsdeqWQSfM29a1lZceFuuZfM1aDKPDjfdOizNqx+/0KISv0x35 VCOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=WSgK8HDq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a12si5046780oie.87.2020.01.28.06.08.58; Tue, 28 Jan 2020 06:09:25 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=WSgK8HDq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728124AbgA1OEj (ORCPT + 99 others); Tue, 28 Jan 2020 09:04:39 -0500 Received: from mail.kernel.org ([198.145.29.99]:51780 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728106AbgA1OEc (ORCPT ); Tue, 28 Jan 2020 09:04:32 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id DF2F42468F; Tue, 28 Jan 2020 14:04:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580220272; bh=mGJZeLJHhubC4r9HA3jWOxvIkBc2ESlia8YEN8x+d50=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WSgK8HDqr+++kXNDCouzUB9snUiy96DOXbHPnslOiJsOH2DgmeOeIbSeyGqYNc1qN IJpwR74gT2EaIVWBQAoWLP+89BdMq+boJcchTbvzeyw9YJ6UgUxXuDl5G1PIVmllJR VaF+HQAetdpm++Lj+37NyJbn9Ne1UP2Zyo5Mj8x4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alex Deucher , Bjorn Helgaas Subject: [PATCH 5.4 038/104] PCI: Mark AMD Navi14 GPU rev 0xc5 ATS as broken Date: Tue, 28 Jan 2020 14:59:59 +0100 Message-Id: <20200128135822.801192122@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200128135817.238524998@linuxfoundation.org> References: <20200128135817.238524998@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alex Deucher commit 5e89cd303e3a4505752952259b9f1ba036632544 upstream. To account for parts of the chip that are "harvested" (disabled) due to silicon flaws, caches on some AMD GPUs must be initialized before ATS is enabled. ATS is normally enabled by the IOMMU driver before the GPU driver loads, so this cache initialization would have to be done in a quirk, but that's too complex to be practical. For Navi14 (device ID 0x7340), this initialization is done by the VBIOS, but apparently some boards went to production with an older VBIOS that doesn't do it. Disable ATS for those boards. Link: https://lore.kernel.org/r/20200114205523.1054271-3-alexander.deucher@amd.com Bug: https://gitlab.freedesktop.org/drm/amd/issues/1015 See-also: d28ca864c493 ("PCI: Mark AMD Stoney Radeon R7 GPU ATS as broken") See-also: 9b44b0b09dec ("PCI: Mark AMD Stoney GPU ATS as broken") [bhelgaas: squash into one patch, simplify slightly, commit log] Signed-off-by: Alex Deucher Signed-off-by: Bjorn Helgaas Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/pci/quirks.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -5021,18 +5021,25 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SE #ifdef CONFIG_PCI_ATS /* - * Some devices have a broken ATS implementation causing IOMMU stalls. - * Don't use ATS for those devices. + * Some devices require additional driver setup to enable ATS. Don't use + * ATS for those devices as ATS will be enabled before the driver has had a + * chance to load and configure the device. */ -static void quirk_no_ats(struct pci_dev *pdev) +static void quirk_amd_harvest_no_ats(struct pci_dev *pdev) { - pci_info(pdev, "disabling ATS (broken on this device)\n"); + if (pdev->device == 0x7340 && pdev->revision != 0xc5) + return; + + pci_info(pdev, "disabling ATS\n"); pdev->ats_cap = 0; } /* AMD Stoney platform GPU */ -DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_no_ats); -DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_no_ats); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_amd_harvest_no_ats); +/* AMD Iceland dGPU */ +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_amd_harvest_no_ats); +/* AMD Navi14 dGPU */ +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7340, quirk_amd_harvest_no_ats); #endif /* CONFIG_PCI_ATS */ /* Freescale PCIe doesn't support MSI in RC mode */