From: Alex Deucher <[email protected]>

This patch fixes occlusion queries and rendering errors
on rv740 boards. Hardcoding the backend map is not an optimal
solution, but a better fix is being worked on.

Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>

 drivers/gpu/drm/radeon/r600_cp.c |    9 ++++++---
 drivers/gpu/drm/radeon/rv770.c   |    9 ++++++---
 2 files changed, 12 insertions(+), 6 deletions(-)

---

http://git.linuxtv.org/v4l-dvb.git?a=commitdiff;h=6a660f06e8120977b25d30ace354c8f9dc3aff2a

diff --git a/drivers/gpu/drm/radeon/r600_cp.c b/drivers/gpu/drm/radeon/r600_cp.c
index 6d5a711..75bcf35 100644
--- a/drivers/gpu/drm/radeon/r600_cp.c
+++ b/drivers/gpu/drm/radeon/r600_cp.c
@@ -1428,9 +1428,12 @@ static void r700_gfx_init(struct drm_device *dev,
 
        gb_tiling_config |= R600_BANK_SWAPS(1);
 
-       backend_map = 
r700_get_tile_pipe_to_backend_map(dev_priv->r600_max_tile_pipes,
-                                                       
dev_priv->r600_max_backends,
-                                                       (0xff << 
dev_priv->r600_max_backends) & 0xff);
+       if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV740)
+               backend_map = 0x28;
+       else
+               backend_map = 
r700_get_tile_pipe_to_backend_map(dev_priv->r600_max_tile_pipes,
+                                                               
dev_priv->r600_max_backends,
+                                                               (0xff << 
dev_priv->r600_max_backends) & 0xff);
        gb_tiling_config |= R600_BACKEND_MAP(backend_map);
 
        cc_gc_shader_pipe_config =
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
index 5943d56..0302167 100644
--- a/drivers/gpu/drm/radeon/rv770.c
+++ b/drivers/gpu/drm/radeon/rv770.c
@@ -549,9 +549,12 @@ static void rv770_gpu_init(struct radeon_device *rdev)
 
        gb_tiling_config |= BANK_SWAPS(1);
 
-       backend_map = 
r700_get_tile_pipe_to_backend_map(rdev->config.rv770.max_tile_pipes,
-                                                       
rdev->config.rv770.max_backends,
-                                                       (0xff << 
rdev->config.rv770.max_backends) & 0xff);
+       if (rdev->family == CHIP_RV740)
+               backend_map = 0x28;
+       else
+               backend_map = 
r700_get_tile_pipe_to_backend_map(rdev->config.rv770.max_tile_pipes,
+                                                               
rdev->config.rv770.max_backends,
+                                                               (0xff << 
rdev->config.rv770.max_backends) & 0xff);
        gb_tiling_config |= BACKEND_MAP(backend_map);
 
        cc_gc_shader_pipe_config =

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to