[Intel-gfx] [PATCH] drm/i915: Skip Stolen Memory first page.

Rodrigo Vivi rodrigo.vivi at intel.com
Wed Jul 30 19:47:46 CEST 2014


WA to skip the first page of stolen memory due to sporadic HW write on *CS Idle

Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
---
 drivers/gpu/drm/i915/i915_gem_stolen.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
index 21c025a..3acefb3 100644
--- a/drivers/gpu/drm/i915/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
@@ -290,6 +290,7 @@ int i915_gem_init_stolen(struct drm_device *dev)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	int bios_reserved = 0;
+	int initial_reserved = 0;
 
 #ifdef CONFIG_INTEL_IOMMU
 	if (intel_iommu_gfx_mapped && INTEL_INFO(dev)->gen < 8) {
@@ -314,9 +315,13 @@ int i915_gem_init_stolen(struct drm_device *dev)
 	if (WARN_ON(bios_reserved > dev_priv->gtt.stolen_size))
 		return 0;
 
+	/* WaSkipStolenMemoryFirstPage */
+	if (INTEL_INFO(dev)->gen >= 8)
+		initial_reserved = 4096;
+
 	/* Basic memrange allocator for stolen space */
-	drm_mm_init(&dev_priv->mm.stolen, 0, dev_priv->gtt.stolen_size -
-		    bios_reserved);
+	drm_mm_init(&dev_priv->mm.stolen, initial_reserved,
+		    dev_priv->gtt.stolen_size - bios_reserved);
 
 	return 0;
 }
-- 
1.9.3




More information about the Intel-gfx mailing list