All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915: Pull MTRR setup to its own function
@ 2012-03-14 15:22 Adam Jackson
  2012-03-14 15:22 ` [PATCH 2/2] drm/i915: Don't do MTRR setup if PAT is enabled Adam Jackson
  2012-03-15 23:47 ` [PATCH 1/2] drm/i915: Pull MTRR setup to its own function Kenneth Graunke
  0 siblings, 2 replies; 4+ messages in thread
From: Adam Jackson @ 2012-03-14 15:22 UTC (permalink / raw)
  To: intel-gfx

No functional change here, just clarifying code flow.

Signed-off-by: Adam Jackson <ajax@redhat.com>
---
 drivers/gpu/drm/i915/i915_dma.c |   29 +++++++++++++++++------------
 1 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index ddfe3d9..d52f4a5 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1893,6 +1893,22 @@ ips_ping_for_i915_load(void)
 	}
 }
 
+static void
+i915_mtrr_setup(struct drm_i915_private *dev_priv, unsigned long base,
+		unsigned long size)
+{
+	/* 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
+	 * MTRR if present.  Even if a UC MTRR isn't present.
+	 */
+	dev_priv->mm.gtt_mtrr = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
+	if (dev_priv->mm.gtt_mtrr < 0) {
+		DRM_INFO("MTRR allocation failed.  Graphics "
+			 "performance may suffer.\n");
+	}
+}
+
 /**
  * i915_driver_load - setup chip and create an initial config
  * @dev: DRM device
@@ -1969,18 +1985,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
 		goto out_rmmap;
 	}
 
-	/* 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
-	 * MTRR if present.  Even if a UC MTRR isn't present.
-	 */
-	dev_priv->mm.gtt_mtrr = mtrr_add(dev->agp->base,
-					 agp_size,
-					 MTRR_TYPE_WRCOMB, 1);
-	if (dev_priv->mm.gtt_mtrr < 0) {
-		DRM_INFO("MTRR allocation failed.  Graphics "
-			 "performance may suffer.\n");
-	}
+	i915_mtrr_setup(dev_priv, dev->agp->base, agp_size);
 
 	/* The i915 workqueue is primarily used for batched retirement of
 	 * requests (and thus managing bo) once the task has been completed
-- 
1.7.7.6

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] drm/i915: Don't do MTRR setup if PAT is enabled
  2012-03-14 15:22 [PATCH 1/2] drm/i915: Pull MTRR setup to its own function Adam Jackson
@ 2012-03-14 15:22 ` Adam Jackson
  2012-03-18 17:48   ` Daniel Vetter
  2012-03-15 23:47 ` [PATCH 1/2] drm/i915: Pull MTRR setup to its own function Kenneth Graunke
  1 sibling, 1 reply; 4+ messages in thread
From: Adam Jackson @ 2012-03-14 15:22 UTC (permalink / raw)
  To: intel-gfx

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>
---
 drivers/gpu/drm/i915/i915_dma.c |    6 ++++++
 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 d52f4a5..cb648d8 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)
 {
@@ -1897,6 +1898,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
-- 
1.7.7.6

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] drm/i915: Pull MTRR setup to its own function
  2012-03-14 15:22 [PATCH 1/2] drm/i915: Pull MTRR setup to its own function Adam Jackson
  2012-03-14 15:22 ` [PATCH 2/2] drm/i915: Don't do MTRR setup if PAT is enabled Adam Jackson
@ 2012-03-15 23:47 ` Kenneth Graunke
  1 sibling, 0 replies; 4+ messages in thread
From: Kenneth Graunke @ 2012-03-15 23:47 UTC (permalink / raw)
  To: Adam Jackson; +Cc: intel-gfx

On 03/14/2012 08:22 AM, Adam Jackson wrote:
> No functional change here, just clarifying code flow.
>
> Signed-off-by: Adam Jackson<ajax@redhat.com>

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>

I'm not qualified to review patch 2, though from the little I know it 
sounds like a good idea.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] drm/i915: Don't do MTRR setup if PAT is enabled
  2012-03-14 15:22 ` [PATCH 2/2] drm/i915: Don't do MTRR setup if PAT is enabled Adam Jackson
@ 2012-03-18 17:48   ` Daniel Vetter
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel Vetter @ 2012-03-18 17:48 UTC (permalink / raw)
  To: Adam Jackson; +Cc: intel-gfx

On Wed, Mar 14, 2012 at 11:22:11AM -0400, Adam Jackson wrote:
> 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>

Queued both patches for -next (with a bz link added to the later one),
thanks.
-Daniel
-- 
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-03-18 17:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-14 15:22 [PATCH 1/2] drm/i915: Pull MTRR setup to its own function Adam Jackson
2012-03-14 15:22 ` [PATCH 2/2] drm/i915: Don't do MTRR setup if PAT is enabled Adam Jackson
2012-03-18 17:48   ` Daniel Vetter
2012-03-15 23:47 ` [PATCH 1/2] drm/i915: Pull MTRR setup to its own function Kenneth Graunke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.