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

Maximilian Attems maks at alioth.debian.org
Mon Dec 20 10:28:28 UTC 2010


Author: maks
Date: Mon Dec 20 10:28:25 2010
New Revision: 16718

Log:
drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx

2.6.35.10 fix without changes.

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/all/drm-radeon-kms-fix-handling-of-tex-lookup-disable-in-cs-checker-on-r2xx.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/30

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Mon Dec 20 10:28:20 2010	(r16717)
+++ dists/sid/linux-2.6/debian/changelog	Mon Dec 20 10:28:25 2010	(r16718)
@@ -19,6 +19,7 @@
   * b43: Fix warning at drivers/mmc/core/core.c:237 in mmc_wait_for_cmd.
   * drm/radeon/kms: MC vram map needs to be >= pci aperture size.
   * drm/radeon/kms: make sure blit addr masks are 64 bit.
+  * drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx.
 
  -- Ben Hutchings <ben at decadent.org.uk>  Sun, 12 Dec 2010 03:23:48 +0000
 

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/drm-radeon-kms-fix-handling-of-tex-lookup-disable-in-cs-checker-on-r2xx.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/drm-radeon-kms-fix-handling-of-tex-lookup-disable-in-cs-checker-on-r2xx.patch	Mon Dec 20 10:28:25 2010	(r16718)
@@ -0,0 +1,86 @@
+From 43b93fbffc2c080dba2e84df6fce8d7e6c0a2581 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexdeucher at gmail.com>
+Date: Wed, 27 Oct 2010 01:02:35 -0400
+Subject: drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx
+
+From: Alex Deucher <alexdeucher at gmail.com>
+
+commit 43b93fbffc2c080dba2e84df6fce8d7e6c0a2581 upstream.
+
+There are cases when multiple texture units have to be enabled,
+but not actually used to sample.  This patch checks to see if
+the lookup_disable bit is set and if so, skips the texture check.
+
+Fixes:
+https://bugs.freedesktop.org/show_bug.cgi?id=25544
+
+Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+Signed-off-by: Andi Kleen <ak at linux.intel.com>
+
+---
+ drivers/gpu/drm/radeon/r100.c       |    3 +++
+ drivers/gpu/drm/radeon/r100_track.h |    1 +
+ drivers/gpu/drm/radeon/r200.c       |    2 ++
+ drivers/gpu/drm/radeon/radeon_reg.h |    1 +
+ 4 files changed, 7 insertions(+)
+
+Index: linux/drivers/gpu/drm/radeon/r100.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/radeon/r100.c
++++ linux/drivers/gpu/drm/radeon/r100.c
+@@ -3232,6 +3232,8 @@ static int r100_cs_track_texture_check(s
+ 	for (u = 0; u < track->num_texture; u++) {
+ 		if (!track->textures[u].enabled)
+ 			continue;
++		if (track->textures[u].lookup_disable)
++			continue;
+ 		robj = track->textures[u].robj;
+ 		if (robj == NULL) {
+ 			DRM_ERROR("No texture bound to unit %u\n", u);
+@@ -3465,6 +3467,7 @@ void r100_cs_track_clear(struct radeon_d
+ 		track->textures[i].robj = NULL;
+ 		/* CS IB emission code makes sure texture unit are disabled */
+ 		track->textures[i].enabled = false;
++		track->textures[i].lookup_disable = false;
+ 		track->textures[i].roundup_w = true;
+ 		track->textures[i].roundup_h = true;
+ 		if (track->separate_cube)
+Index: linux/drivers/gpu/drm/radeon/r100_track.h
+===================================================================
+--- linux.orig/drivers/gpu/drm/radeon/r100_track.h
++++ linux/drivers/gpu/drm/radeon/r100_track.h
+@@ -46,6 +46,7 @@ struct r100_cs_track_texture {
+ 	unsigned		height_11;
+ 	bool			use_pitch;
+ 	bool			enabled;
++	bool                    lookup_disable;
+ 	bool			roundup_w;
+ 	bool			roundup_h;
+ 	unsigned                compress_format;
+Index: linux/drivers/gpu/drm/radeon/r200.c
+===================================================================
+--- linux.orig/drivers/gpu/drm/radeon/r200.c
++++ linux/drivers/gpu/drm/radeon/r200.c
+@@ -447,6 +447,8 @@ int r200_packet0_check(struct radeon_cs_
+ 			track->textures[i].width = 1 << ((idx_value >> RADEON_TXFORMAT_WIDTH_SHIFT) & RADEON_TXFORMAT_WIDTH_MASK);
+ 			track->textures[i].height = 1 << ((idx_value >> RADEON_TXFORMAT_HEIGHT_SHIFT) & RADEON_TXFORMAT_HEIGHT_MASK);
+ 		}
++		if (idx_value & R200_TXFORMAT_LOOKUP_DISABLE)
++			track->textures[i].lookup_disable = true;
+ 		switch ((idx_value & RADEON_TXFORMAT_FORMAT_MASK)) {
+ 		case R200_TXFORMAT_I8:
+ 		case R200_TXFORMAT_RGB332:
+Index: linux/drivers/gpu/drm/radeon/radeon_reg.h
+===================================================================
+--- linux.orig/drivers/gpu/drm/radeon/radeon_reg.h
++++ linux/drivers/gpu/drm/radeon/radeon_reg.h
+@@ -2836,6 +2836,7 @@
+ #       define R200_TXFORMAT_ST_ROUTE_STQ5	(5 << 24)
+ #       define R200_TXFORMAT_ST_ROUTE_MASK	(7 << 24)
+ #       define R200_TXFORMAT_ST_ROUTE_SHIFT	24
++#       define R200_TXFORMAT_LOOKUP_DISABLE	(1 << 27)
+ #       define R200_TXFORMAT_ALPHA_MASK_ENABLE	(1 << 28)
+ #       define R200_TXFORMAT_CHROMA_KEY_ENABLE	(1 << 29)
+ #       define R200_TXFORMAT_CUBIC_MAP_ENABLE		(1 << 30)

Modified: dists/sid/linux-2.6/debian/patches/series/30
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/30	Mon Dec 20 10:28:20 2010	(r16717)
+++ dists/sid/linux-2.6/debian/patches/series/30	Mon Dec 20 10:28:25 2010	(r16718)
@@ -7,4 +7,4 @@
 + bugfix/all/b43-fix-warning-at-drivers-mmc-core-core.c-237-in-mmc_wait_for_cmd.patch
 + bugfix/all/drm-radeon-kms-mc-vram-map-needs-to-be-pci-aperture-size.patch
 + bugfix/all/drm-radeon-kms-make-sure-blit-addr-masks-are-64-bit.patch
-
++ bugfix/all/drm-radeon-kms-fix-handling-of-tex-lookup-disable-in-cs-checker-on-r2xx.patch



More information about the Kernel-svn-changes mailing list