On Mon, Sep 3, 2012 at 2:09 PM, Andreas Boll <andreas.boll....@gmail.com> wrote:
> Hi list,
>
> I've read some critical news [0] about mesa and I want to fix the issue asap.
>
> I wanted to cherry pick the following commit to the stable branch 8.0:
>
>
> commit b4082f492b4b55df4c636445e47b97d1f1e4b5b2
> Author: Alex Deucher <alexander.deuc...@amd.com>
> Date:   Tue Mar 20 19:43:59 2012 -0400
>
>     r600g: add support for TN (trinity) APUs
>
>     Note: this is a candidate for the stable branches.
>
>     Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
>
> but it has triggered a non-trivial conflict.
> At first sight the conflict is caused by the cache flushing rework from commit
> 0813e58a3e41faf6f2072d034dfdc6198a3a1fee
>
> Could someone who is more familiar with the code solve the conflict
> so that the next stable release (mesa 8.0.5) has support for trinity.

The attached patch should do the trick.

Alex

>
> [0] 
> http://www.h-online.com/open/features/Kernel-Comment-Release-early-release-often-1696535.html
>
> Andreas
>
> P.S: I'm cherry-picking all the other outstanding candidates to mesa 8.0
> and once I have my fdo account I'll push a branch at people.fdo with
> all the candidates (about 37) for 8.0.
> This way the qa's and other people can test a little bit before I push
> it to the official 8.0 branch.
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
From 31a4448a8365925998c27b495b3086837de9939e Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexander.deuc...@amd.com>
Date: Mon, 3 Sep 2012 15:11:12 -0400
Subject: [PATCH] r600g: 8.0.x support for Trinity

This is a backport of the following commits from master:
b4082f492b4b55df4c636445e47b97d1f1e4b5b2
75f9d24ac4a539a8f0c16c9bd66e11dc394ba81b

Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 include/pci_ids/r600_pci_ids.h                  | 25 +++++++++++++++++++++++++
 src/gallium/drivers/r600/evergreen_hw_context.c |  4 ++--
 src/gallium/drivers/r600/r600.h                 |  1 +
 src/gallium/drivers/r600/r600_pipe.c            |  3 ++-
 4 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/include/pci_ids/r600_pci_ids.h b/include/pci_ids/r600_pci_ids.h
index a55d45c..3ffc525 100644
--- a/include/pci_ids/r600_pci_ids.h
+++ b/include/pci_ids/r600_pci_ids.h
@@ -279,3 +279,28 @@ CHIPSET(0x6772, CAICOS_6772, CAICOS)
 CHIPSET(0x6778, CAICOS_6778, CAICOS)
 CHIPSET(0x6779, CAICOS_6779, CAICOS)
 CHIPSET(0x677B, CAICOS_677B, CAICOS)
+
+CHIPSET(0x9900, ARUBA_9900, ARUBA)
+CHIPSET(0x9901, ARUBA_9901, ARUBA)
+CHIPSET(0x9903, ARUBA_9903, ARUBA)
+CHIPSET(0x9904, ARUBA_9904, ARUBA)
+CHIPSET(0x9905, ARUBA_9905, ARUBA)
+CHIPSET(0x9906, ARUBA_9906, ARUBA)
+CHIPSET(0x9907, ARUBA_9907, ARUBA)
+CHIPSET(0x9908, ARUBA_9908, ARUBA)
+CHIPSET(0x9909, ARUBA_9909, ARUBA)
+CHIPSET(0x990A, ARUBA_990A, ARUBA)
+CHIPSET(0x990F, ARUBA_990F, ARUBA)
+CHIPSET(0x9910, ARUBA_9910, ARUBA)
+CHIPSET(0x9913, ARUBA_9913, ARUBA)
+CHIPSET(0x9917, ARUBA_9917, ARUBA)
+CHIPSET(0x9918, ARUBA_9918, ARUBA)
+CHIPSET(0x9919, ARUBA_9919, ARUBA)
+CHIPSET(0x9990, ARUBA_9990, ARUBA)
+CHIPSET(0x9991, ARUBA_9991, ARUBA)
+CHIPSET(0x9992, ARUBA_9992, ARUBA)
+CHIPSET(0x9993, ARUBA_9993, ARUBA)
+CHIPSET(0x9994, ARUBA_9994, ARUBA)
+CHIPSET(0x99A0, ARUBA_99A0, ARUBA)
+CHIPSET(0x99A2, ARUBA_99A2, ARUBA)
+CHIPSET(0x99A4, ARUBA_99A4, ARUBA)
diff --git a/src/gallium/drivers/r600/evergreen_hw_context.c b/src/gallium/drivers/r600/evergreen_hw_context.c
index 7e698f1..b09bde1 100644
--- a/src/gallium/drivers/r600/evergreen_hw_context.c
+++ b/src/gallium/drivers/r600/evergreen_hw_context.c
@@ -930,7 +930,7 @@ int evergreen_context_init(struct r600_context *ctx, struct r600_screen *screen)
 	}
 
 	/* add blocks */
-	if (ctx->screen->family == CHIP_CAYMAN)
+	if (ctx->screen->family >= CHIP_CAYMAN)
 		r = r600_context_add_block(ctx, cayman_config_reg_list,
 					   Elements(cayman_config_reg_list), PKT3_SET_CONFIG_REG, EVERGREEN_CONFIG_REG_OFFSET);
 	else
@@ -938,7 +938,7 @@ int evergreen_context_init(struct r600_context *ctx, struct r600_screen *screen)
 					   Elements(evergreen_config_reg_list), PKT3_SET_CONFIG_REG, EVERGREEN_CONFIG_REG_OFFSET);
 	if (r)
 		goto out_err;
-	if (ctx->screen->family == CHIP_CAYMAN)
+	if (ctx->screen->family >= CHIP_CAYMAN)
 		r = r600_context_add_block(ctx, cayman_context_reg_list,
 					   Elements(cayman_context_reg_list), PKT3_SET_CONTEXT_REG, EVERGREEN_CONTEXT_REG_OFFSET);
 	else
diff --git a/src/gallium/drivers/r600/r600.h b/src/gallium/drivers/r600/r600.h
index 4bfb5a9..f74d4d0 100644
--- a/src/gallium/drivers/r600/r600.h
+++ b/src/gallium/drivers/r600/r600.h
@@ -66,6 +66,7 @@ enum radeon_family {
 	CHIP_TURKS,
 	CHIP_CAICOS,
 	CHIP_CAYMAN,
+	CHIP_ARUBA,
 	CHIP_LAST,
 };
 
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index 008a0b9..91bc4e6 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -333,6 +333,7 @@ static const char *r600_get_family_name(enum radeon_family family)
 	case CHIP_TURKS: return "AMD TURKS";
 	case CHIP_CAICOS: return "AMD CAICOS";
 	case CHIP_CAYMAN: return "AMD CAYMAN";
+	case CHIP_ARUBA: return "AMD ARUBA";
 	default: return "AMD unknown";
 	}
 }
@@ -777,7 +778,7 @@ struct pipe_screen *r600_screen_create(struct radeon_winsys *ws)
 	}
 
 	/* setup class */
-	if (rscreen->family == CHIP_CAYMAN) {
+	if (rscreen->family >= CHIP_CAYMAN) {
 		rscreen->chip_class = CAYMAN;
 	} else if (rscreen->family >= CHIP_CEDAR) {
 		rscreen->chip_class = EVERGREEN;
-- 
1.7.11.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to