rpms/kernel/F-11 drm-intel-tiled-front.patch, NONE, 1.1 kernel.spec, 1.1557, 1.1558

Adam Jackson ajax at fedoraproject.org
Fri Apr 17 21:35:34 UTC 2009


Author: ajax

Update of /cvs/pkgs/rpms/kernel/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv18650

Modified Files:
	kernel.spec 
Added Files:
	drm-intel-tiled-front.patch 
Log Message:
* Fri Apr 17 2009 Adam Jackson <ajax at redhat.com>
- drm-intel-tiled-front.patch: Enable tiled front buffer on gen4


drm-intel-tiled-front.patch:

--- NEW FILE drm-intel-tiled-front.patch ---
From: Jesse Barnes <jbarnes at virtuousgeek.org>
Date: Tue, 14 Apr 2009 21:17:47 +0000 (-0700)
Subject: drm/i915: allow tiled front buffers on 965+
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fanholt%2Fdrm-intel.git;a=commitdiff_plain;h=f544847fbaf099278343f875987a983f2b913134

drm/i915: allow tiled front buffers on 965+

This patch corrects a pretty big oversight in the KMS code for 965+
chips.  The current code is missing tiled surface register programming,
so userland can allocate a tiled surface and use it for mode setting,
resulting in corruption.  This patch fixes that, allowing for tiled
front buffers on 965+.

Cc: stable at kernel.org
Tested-by: Arkadiusz Miskiewicz <arekm at maven.pl>
Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
Signed-off-by: Eric Anholt <eric at anholt.net>
---

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index e805b59..5211947 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1446,6 +1446,7 @@
 #define   DISPPLANE_NO_LINE_DOUBLE		0
 #define   DISPPLANE_STEREO_POLARITY_FIRST	0
 #define   DISPPLANE_STEREO_POLARITY_SECOND	(1<<18)
+#define   DISPPLANE_TILED			(1<<10)
 #define DSPAADDR		0x70184
 #define DSPASTRIDE		0x70188
 #define DSPAPOS			0x7018C /* reserved */
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index c2c8e95..bdcda36 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -657,6 +657,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
 	int dspbase = (pipe == 0 ? DSPAADDR : DSPBADDR);
 	int dspsurf = (pipe == 0 ? DSPASURF : DSPBSURF);
 	int dspstride = (pipe == 0) ? DSPASTRIDE : DSPBSTRIDE;
+	int dsptileoff = (pipe == 0 ? DSPATILEOFF : DSPBTILEOFF);
 	int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR;
 	u32 dspcntr, alignment;
 	int ret;
@@ -733,6 +734,13 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
 		mutex_unlock(&dev->struct_mutex);
 		return -EINVAL;
 	}
+	if (IS_I965G(dev)) {
+		if (obj_priv->tiling_mode != I915_TILING_NONE)
+			dspcntr |= DISPPLANE_TILED;
+		else
+			dspcntr &= ~DISPPLANE_TILED;
+	}
+
 	I915_WRITE(dspcntr_reg, dspcntr);
 
 	Start = obj_priv->gtt_offset;
@@ -745,6 +753,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
 		I915_READ(dspbase);
 		I915_WRITE(dspsurf, Start);
 		I915_READ(dspsurf);
+		I915_WRITE(dsptileoff, (y << 16) | x);
 	} else {
 		I915_WRITE(dspbase, Start + Offset);
 		I915_READ(dspbase);


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1557
retrieving revision 1.1558
diff -u -r1.1557 -r1.1558
--- kernel.spec	17 Apr 2009 12:25:32 -0000	1.1557
+++ kernel.spec	17 Apr 2009 21:35:04 -0000	1.1558
@@ -688,6 +688,7 @@
 Patch1819: drm-intel-big-hammer.patch
 Patch1821: drm-intel-lying-systems-without-lvds.patch
 Patch1822: drm-intel-gen3-fb-hack.patch
+Patch1823: drm-intel-tiled-front.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
@@ -1342,6 +1343,7 @@
 ApplyPatch drm-intel-big-hammer.patch
 ApplyPatch drm-intel-lying-systems-without-lvds.patch
 ApplyPatch drm-intel-gen3-fb-hack.patch
+ApplyPatch drm-intel-tiled-front.patch
 
 # linux1394 git patches
 ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1969,6 +1971,9 @@
 # and build.
 
 %changelog
+* Fri Apr 17 2009 Adam Jackson <ajax at redhat.com>
+- drm-intel-tiled-front.patch: Enable tiled front buffer on gen4
+
 * Fri Apr 17 2009 Dave Airlie <airlied at redhat.com> 2.6.29.1-95
 - nouveau: fix powerpc build
 




More information about the scm-commits mailing list