[kernel] r15766 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/series

Ben Hutchings benh at alioth.debian.org
Tue May 25 22:46:39 UTC 2010


Author: benh
Date: Tue May 25 22:46:33 2010
New Revision: 15766

Log:
nouveau: Fix fbcon corruption with font width not divisible by 8 (Closes: #583162)

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/all/drm-nouveau-Fix-fbcon-corruption-with-font-width-not.patch
   dists/sid/linux-2.6/debian/patches/bugfix/all/drm-nouveau-use-ALIGN-instead-of-open-coding-it.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/14

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Tue May 25 04:07:11 2010	(r15765)
+++ dists/sid/linux-2.6/debian/changelog	Tue May 25 22:46:33 2010	(r15766)
@@ -16,6 +16,8 @@
   * [x86] Disable e_powersaver cpufreq driver as unsafe. It has already
     been blacklisted by cpufrequtils. The acpi-cpufreq driver can be used
     instead on some VIA C7 systems. (Closes: #566208)
+  * nouveau: Fix fbcon corruption with font width not divisible by 8
+    (Closes: #583162)
 
   [ Bastian Blank ]
   * Update Xen patch.

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/drm-nouveau-Fix-fbcon-corruption-with-font-width-not.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/drm-nouveau-Fix-fbcon-corruption-with-font-width-not.patch	Tue May 25 22:46:33 2010	(r15766)
@@ -0,0 +1,58 @@
+From: Marcin Kościelnicki <koriakin at 0x04.net>
+Date: Sat, 27 Feb 2010 18:13:35 +0000
+Subject: [PATCH] drm/nouveau: Fix fbcon corruption with font width not divisible by 8
+
+commit c82b88d578847909797945824851a6a9a84f9c20 upstream.
+
+NV50 is nice and has a switch that autoaligns stuff for us. Pre-NV50,
+we need to align input bitmap width manually.
+
+Signed-off-by: Marcin Kościelnicki <koriakin at 0x04.net>
+Signed-off-by: Francisco Jerez <currojerez at riseup.net>
+Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
+---
+ drivers/gpu/drm/nouveau/nv04_fbcon.c |    6 +++---
+ drivers/gpu/drm/nouveau/nv50_fbcon.c |    2 +-
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nv04_fbcon.c b/drivers/gpu/drm/nouveau/nv04_fbcon.c
+index 3da90c2..813b25c 100644
+--- a/drivers/gpu/drm/nouveau/nv04_fbcon.c
++++ b/drivers/gpu/drm/nouveau/nv04_fbcon.c
+@@ -118,8 +118,8 @@ nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image)
+ 		return;
+ 	}
+ 
+-	width = ALIGN(image->width, 32);
+-	dsize = (width * image->height) >> 5;
++	width = ALIGN(image->width, 8);
++	dsize = ALIGN(width * image->height, 32) >> 5;
+ 
+ 	if (info->fix.visual == FB_VISUAL_TRUECOLOR ||
+ 	    info->fix.visual == FB_VISUAL_DIRECTCOLOR) {
+@@ -136,8 +136,8 @@ nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image)
+ 			 ((image->dx + image->width) & 0xffff));
+ 	OUT_RING(chan, bg);
+ 	OUT_RING(chan, fg);
+-	OUT_RING(chan, (image->height << 16) | image->width);
+ 	OUT_RING(chan, (image->height << 16) | width);
++	OUT_RING(chan, (image->height << 16) | image->width);
+ 	OUT_RING(chan, (image->dy << 16) | (image->dx & 0xffff));
+ 
+ 	while (dsize) {
+diff --git a/drivers/gpu/drm/nouveau/nv50_fbcon.c b/drivers/gpu/drm/nouveau/nv50_fbcon.c
+index 993c712..25a3cd8 100644
+--- a/drivers/gpu/drm/nouveau/nv50_fbcon.c
++++ b/drivers/gpu/drm/nouveau/nv50_fbcon.c
+@@ -233,7 +233,7 @@ nv50_fbcon_accel_init(struct fb_info *info)
+ 	BEGIN_RING(chan, NvSub2D, 0x0808, 3);
+ 	OUT_RING(chan, 0);
+ 	OUT_RING(chan, 0);
+-	OUT_RING(chan, 0);
++	OUT_RING(chan, 1);
+ 	BEGIN_RING(chan, NvSub2D, 0x081c, 1);
+ 	OUT_RING(chan, 1);
+ 	BEGIN_RING(chan, NvSub2D, 0x0840, 4);
+-- 
+1.7.1
+

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/drm-nouveau-use-ALIGN-instead-of-open-coding-it.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/drm-nouveau-use-ALIGN-instead-of-open-coding-it.patch	Tue May 25 22:46:33 2010	(r15766)
@@ -0,0 +1,57 @@
+From: Matt Turner <mattst88 at gmail.com>
+Date: Wed, 24 Feb 2010 23:27:10 -0500
+Subject: [PATCH] drm/nouveau: use ALIGN instead of open coding it
+
+commit 3bfc7d22d0400e85a93e835d4398dcbe0af68b0b upstream.
+
+CC: Ben Skeggs <bskeggs at redhat.com>
+Signed-off-by: Matt Turner <mattst88 at gmail.com>
+Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
+---
+ drivers/gpu/drm/nouveau/nv04_fbcon.c   |    2 +-
+ drivers/gpu/drm/nouveau/nv50_fbcon.c   |    2 +-
+ drivers/gpu/drm/nouveau/nv50_instmem.c |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nv04_fbcon.c b/drivers/gpu/drm/nouveau/nv04_fbcon.c
+index fd01caa..3da90c2 100644
+--- a/drivers/gpu/drm/nouveau/nv04_fbcon.c
++++ b/drivers/gpu/drm/nouveau/nv04_fbcon.c
+@@ -118,7 +118,7 @@ nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image)
+ 		return;
+ 	}
+ 
+-	width = (image->width + 31) & ~31;
++	width = ALIGN(image->width, 32);
+ 	dsize = (width * image->height) >> 5;
+ 
+ 	if (info->fix.visual == FB_VISUAL_TRUECOLOR ||
+diff --git a/drivers/gpu/drm/nouveau/nv50_fbcon.c b/drivers/gpu/drm/nouveau/nv50_fbcon.c
+index 0f57cdf..993c712 100644
+--- a/drivers/gpu/drm/nouveau/nv50_fbcon.c
++++ b/drivers/gpu/drm/nouveau/nv50_fbcon.c
+@@ -109,7 +109,7 @@ nv50_fbcon_imageblit(struct fb_info *info, const struct fb_image *image)
+ 		return;
+ 	}
+ 
+-	width = (image->width + 31) & ~31;
++	width = ALIGN(image->width, 32);
+ 	dwords = (width * image->height) >> 5;
+ 
+ 	BEGIN_RING(chan, NvSub2D, 0x0814, 2);
+diff --git a/drivers/gpu/drm/nouveau/nv50_instmem.c b/drivers/gpu/drm/nouveau/nv50_instmem.c
+index f0dc4e3..de1f5b0 100644
+--- a/drivers/gpu/drm/nouveau/nv50_instmem.c
++++ b/drivers/gpu/drm/nouveau/nv50_instmem.c
+@@ -390,7 +390,7 @@ nv50_instmem_populate(struct drm_device *dev, struct nouveau_gpuobj *gpuobj,
+ 	if (gpuobj->im_backing)
+ 		return -EINVAL;
+ 
+-	*sz = (*sz + (NV50_INSTMEM_PAGE_SIZE-1)) & ~(NV50_INSTMEM_PAGE_SIZE-1);
++	*sz = ALIGN(*sz, NV50_INSTMEM_PAGE_SIZE);
+ 	if (*sz == 0)
+ 		return -EINVAL;
+ 
+-- 
+1.7.1
+

Modified: dists/sid/linux-2.6/debian/patches/series/14
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/14	Tue May 25 04:07:11 2010	(r15765)
+++ dists/sid/linux-2.6/debian/patches/series/14	Tue May 25 22:46:33 2010	(r15766)
@@ -14,3 +14,5 @@
 + bugfix/all/drm-i915-use-pipe_control-instruction-on-ironlake-and-sandy-bridge.patch
 + bugfix/all/drm-i915-fix-non-ironlake-965-class-crashes.patch
 + bugfix/all/drm-i915-disable-fbc-on-915gm-and-945gm.patch
++ bugfix/all/drm-nouveau-use-ALIGN-instead-of-open-coding-it.patch
++ bugfix/all/drm-nouveau-Fix-fbcon-corruption-with-font-width-not.patch



More information about the Kernel-svn-changes mailing list