Blob Blame History Raw
From e13491e4c394907ffdd834aeccca279213818079 Mon Sep 17 00:00:00 2001
From: drago01 <drago01@gmail.com>
Date: Wed, 26 Oct 2011 13:37:27 -0400
Subject: [PATCH] Default to igfx_off

This option seems to causes way to many issues, it is
being investigated by Intel's chipset team for months now and
we still don't have any outcome.

The results so far are "black screen when starting X",
"system hangs when using GL", "system does not resume".

The patch adds an intel_iommu=igfx_on option, which makes it opt in,
rather than opt out.

Signed-off-by: Adel Gadllah <adel.gadllah@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
---
 Documentation/kernel-parameters.txt |   11 +++++------
 drivers/iommu/intel-iommu.c         |    9 +++++----
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index a8ba119..8ddc43a 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -998,12 +998,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 			Enable intel iommu driver.
 		off
 			Disable intel iommu driver.
-		igfx_off [Default Off]
-			By default, gfx is mapped as normal device. If a gfx
-			device has a dedicated DMAR unit, the DMAR unit is
-			bypassed by not enabling DMAR with this option. In
-			this case, gfx device will use physical address for
-			DMA.
+		igfx_on [Default Off]
+			By default, the gfx's DMAR unit is bypassed by not enabling
+			DMAR with this option. So the gfx device will use physical
+			address for DMA. When this option is enabled it the gfx is
+			mapped as normal device.
 		forcedac [x86_64]
 			With this option iommu will not optimize to look
 			for io virtual address below 32-bit forcing dual
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index be1953c..2e23af1 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -404,7 +404,8 @@ int dmar_disabled = 0;
 int dmar_disabled = 1;
 #endif /*CONFIG_INTEL_IOMMU_DEFAULT_ON*/
 
-static int dmar_map_gfx = 1;
+/* disabled by default; causes way too many issues */
+static int dmar_map_gfx = 0;
 static int dmar_forcedac;
 static int intel_iommu_strict;
 static int intel_iommu_superpage = 1;
@@ -429,10 +430,10 @@ static int __init intel_iommu_setup(char *str)
 		} else if (!strncmp(str, "off", 3)) {
 			dmar_disabled = 1;
 			printk(KERN_INFO "Intel-IOMMU: disabled\n");
-		} else if (!strncmp(str, "igfx_off", 8)) {
-			dmar_map_gfx = 0;
+		} else if (!strncmp(str, "igfx_on", 7)) {
+			dmar_map_gfx = 1;
 			printk(KERN_INFO
-				"Intel-IOMMU: disable GFX device mapping\n");
+				"Intel-IOMMU: enabled GFX device mapping\n");
 		} else if (!strncmp(str, "forcedac", 8)) {
 			printk(KERN_INFO
 				"Intel-IOMMU: Forcing DAC for PCI devices\n");
-- 
1.7.6.4