summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_dma.c
diff options
context:
space:
mode:
authorAdam Jackson2012-03-14 16:22:11 +0100
committerDaniel Vetter2012-03-18 18:48:10 +0100
commit9e984bc1dffd405138ff22356188b6a1677c64c8 (patch)
tree0c331dcac92c8f6bc21744b849ea83faf6bfd35d /drivers/gpu/drm/i915/i915_dma.c
parentdrm/i915: Pull MTRR setup to its own function (diff)
downloadkernel-qcow2-linux-9e984bc1dffd405138ff22356188b6a1677c64c8.tar.gz
kernel-qcow2-linux-9e984bc1dffd405138ff22356188b6a1677c64c8.tar.xz
kernel-qcow2-linux-9e984bc1dffd405138ff22356188b6a1677c64c8.zip
drm/i915: Don't do MTRR setup if PAT is enabled
Some newer BIOSes are shipping with all MTRRs already populated. These BIOSes are all on machines with sufficiently new CPUs that the referenced errata doesn't apply anyway, so just don't try to claim the MTRR. Signed-off-by: Adam Jackson <ajax@redhat.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41648 Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_dma.c')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index fa5c276b7992..ee7775c55450 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -43,6 +43,7 @@
#include <linux/slab.h>
#include <linux/module.h>
#include <acpi/video.h>
+#include <asm/pat.h>
static void i915_write_hws_pga(struct drm_device *dev)
{
@@ -1918,6 +1919,11 @@ static void
i915_mtrr_setup(struct drm_i915_private *dev_priv, unsigned long base,
unsigned long size)
{
+#if defined(CONFIG_X86_PAT)
+ if (cpu_has_pat)
+ return;
+#endif
+
/* Set up a WC MTRR for non-PAT systems. This is more common than
* one would think, because the kernel disables PAT on first
* generation Core chips because WC PAT gets overridden by a UC