From 602e1f209dd983e40d989e871cd253e8187899b8 Mon Sep 17 00:00:00 2001 From: drago01 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 Reviewed-by: Adam Jackson --- 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 81c287f..ee5693b 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1014,12 +1014,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 bdc447f..240db6b 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -408,7 +408,8 @@ int dmar_disabled = 1; int intel_iommu_enabled = 0; EXPORT_SYMBOL_GPL(intel_iommu_enabled); -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; @@ -433,10 +434,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.7.4