[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 1 Feb 2011 16:45:38 -0800 (PST)
From: Andi Kleen <andi@...stfloor.org>
To: sconklin@...onical.com, linux-kernel@...r.kernel.org,
stable@...nel.org
Subject: [PATCH] [138/139] Revert drm/radeon/kms: properly compute group_size on 6xx/7xx
2.6.35-longterm review patch. If anyone has any objections, please let me know.
------------------
From: Steve Conklin <sconklin@...onical.com>
We discovered a regression for Radeon users in our latest proposed
kernel for 2.6.35 (Maverick), and have isolated it to this patch:
http://git.kernel.org/?p=linux/kernel/git/longterm/linux-2.6.35.y.git;a=commit;h=b8e9a4a45f8427837f4dba89
+bda4d4e3f3a5c726
We took that patch as part of 2.6.35.10, and one of our testers has
reported that our build of that kernel also exhibits the problem.
These are mainline kernels built with the Ubuntu configs.
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.35.10-maverick/
Our bug report is here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/703553
Upstream bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=24802
Index: linux-2.6.35.y/drivers/gpu/drm/radeon/r600.c
===================================================================
--- linux-2.6.35.y.orig/drivers/gpu/drm/radeon/r600.c
+++ linux-2.6.35.y/drivers/gpu/drm/radeon/r600.c
@@ -1597,11 +1597,8 @@ void r600_gpu_init(struct radeon_device
rdev->config.r600.tiling_npipes = rdev->config.r600.max_tile_pipes;
rdev->config.r600.tiling_nbanks = 4 << ((ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT);
tiling_config |= BANK_TILING((ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT);
- tiling_config |= GROUP_SIZE((ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT);
- if ((ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT)
- rdev->config.r600.tiling_group_size = 512;
- else
- rdev->config.r600.tiling_group_size = 256;
+ tiling_config |= GROUP_SIZE(0);
+ rdev->config.r600.tiling_group_size = 256;
tmp = (ramcfg & NOOFROWS_MASK) >> NOOFROWS_SHIFT;
if (tmp > 3) {
tiling_config |= ROW_TILING(3);
Index: linux-2.6.35.y/drivers/gpu/drm/radeon/rv770.c
===================================================================
--- linux-2.6.35.y.orig/drivers/gpu/drm/radeon/rv770.c
+++ linux-2.6.35.y/drivers/gpu/drm/radeon/rv770.c
@@ -627,11 +627,10 @@ static void rv770_gpu_init(struct radeon
else
gb_tiling_config |= BANK_TILING((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT);
rdev->config.rv770.tiling_nbanks = 4 << ((gb_tiling_config >> 4) & 0x3);
- gb_tiling_config |= GROUP_SIZE((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT);
- if ((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT)
- rdev->config.rv770.tiling_group_size = 512;
- else
- rdev->config.rv770.tiling_group_size = 256;
+
+ gb_tiling_config |= GROUP_SIZE(0);
+ rdev->config.rv770.tiling_group_size = 256;
+
if (((mc_arb_ramcfg & NOOFROWS_MASK) >> NOOFROWS_SHIFT) > 3) {
gb_tiling_config |= ROW_TILING(3);
gb_tiling_config |= SAMPLE_SPLIT(3);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists