From patchwork Sun Jan 20 22:50:13 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 2008761 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id E12B33FD86 for ; Sun, 20 Jan 2013 22:48:26 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DADBFE6075 for ; Sun, 20 Jan 2013 14:48:26 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-ee0-f42.google.com (mail-ee0-f42.google.com [74.125.83.42]) by gabe.freedesktop.org (Postfix) with ESMTP id 8085EE5E13 for ; Sun, 20 Jan 2013 14:48:13 -0800 (PST) Received: by mail-ee0-f42.google.com with SMTP id b47so2535145eek.1 for ; Sun, 20 Jan 2013 14:48:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=x-received:from:to:cc:subject:date:message-id:x-mailer; bh=/SOJcNVplYKD6Br+57A1tkGNYbd4OA1Ozve/G0ORz+0=; b=Y/RABZTANLjgH7in6yV9EwgYfEgtXwnK48ZlgvGQqtyNa33JXrJDYhYHJ98Sj6AG1+ 7UlsitFAc1njN2gR0kyr1F19g90tJFdPm+rHZS+/J0m4ipm6h6aiSqi+QmbOSj9Hz/Gd zZQ1Uyayh2z2dwIC1BPon4Nlb1q0EFZL0U+mc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer :x-gm-message-state; bh=/SOJcNVplYKD6Br+57A1tkGNYbd4OA1Ozve/G0ORz+0=; b=CJiLJYeGdJ9OoZgIW1c8j8zb6nbv2BeWHzDSJvMIUyjAKDQ4/rjqUgvJhFeH7LtaWe DTU0UQhgPPWBvSIAxYfbImMf35GrAltf7+LnCGI/vizxGBPlXL7BWs4VsE1JPJP067bN Ec0pmVcT9CI2lWSNyosgIVb9PmWWnDhXWHk7erLVfl7Glpl4MWfE5Gj4cfor5hVJe+PF GPgKEgPjxmAclltCKAfF43FIP/+kl0EGD0do2wqgiJ8pB4H8GMFBh0GlsQf7ltsihb1X Oku/F0u8WdxM2QF0SVJvMdnH08TfxFmlmSgAYKpt427MNC1ztBkgjj0hB8brg/nk8pUE 2FMw== X-Received: by 10.14.194.195 with SMTP id m43mr53401424een.44.1358722092256; Sun, 20 Jan 2013 14:48:12 -0800 (PST) Received: from phenom.ffwll.local (178-83-130-250.dynamic.hispeed.ch. [178.83.130.250]) by mx.google.com with ESMTPS id z8sm19564989eeo.11.2013.01.20.14.48.10 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 20 Jan 2013 14:48:11 -0800 (PST) From: Daniel Vetter To: Intel Graphics Development Subject: [PATCH] iommu/intel: disable DMAR for g4x integrated gfx Date: Sun, 20 Jan 2013 23:50:13 +0100 Message-Id: <1358722213-2075-1-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 1.7.10.4 X-Gm-Message-State: ALoCoQk/XFv5BzEbTM9A51I7VUWRlZd7TAB92v6WwdFr3UZhCR7/AdPwntyV5L/UQba8Mf0kPwCv Cc: Daniel Vetter , LKML , stable@vger.kernel.org, DRI Development , David Woodhouse X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org DMAR support on g4x/gm45 integrated gpus seems to be totally busted. So don't bother, but instead disable it by default to allow distros to unconditionally enable DMAR support. v2: Actually wire up the right quirk entry, spotted by Adam Jackson. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=51921 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=538163 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=538163 Cc: Adam Jackson Cc: David Woodhouse Cc: stable@vger.kernel.org Tested-by: stathis Tested-by: Mihai Moldovan Signed-off-by: Daniel Vetter Acked-By: David Woodhouse --- drivers/iommu/intel-iommu.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index d4a4cd4..9743769 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -4196,6 +4196,21 @@ static struct iommu_ops intel_iommu_ops = { .pgsize_bitmap = INTEL_IOMMU_PGSIZES, }; +static void __devinit quirk_iommu_g4x_gfx(struct pci_dev *dev) +{ + /* G4x/GM45 integrated gfx dmar support is totally busted. */ + printk(KERN_INFO "DMAR: Disabling IOMMU for graphics on this chipset\n"); + dmar_map_gfx = 0; +} + +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e10, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e20, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e30, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e40, quirk_iommu_g4x_gfx); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e90, quirk_iommu_g4x_gfx); + static void __devinit quirk_iommu_rwbf(struct pci_dev *dev) { /* @@ -4204,12 +4219,6 @@ static void __devinit quirk_iommu_rwbf(struct pci_dev *dev) */ printk(KERN_INFO "DMAR: Forcing write-buffer flush capability\n"); rwbf_quirk = 1; - - /* https://bugzilla.redhat.com/show_bug.cgi?id=538163 */ - if (dev->revision == 0x07) { - printk(KERN_INFO "DMAR: Disabling IOMMU for graphics on this chipset\n"); - dmar_map_gfx = 0; - } } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf);