summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-11-22 17:47:24 -0500
committerAlex Deucher <alexdeucher@gmail.com>2010-11-22 18:01:26 -0500
commit0e4c5f63b9023b292b88b2f0d5d0f6154e8ad263 (patch)
tree0814cc80adc2749b18130a270de17164bb98aaab
parent072f2cbf29725c698497fd451a3289802ff31a40 (diff)
r600g: add support for ontario APUs
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
-rw-r--r--src/gallium/drivers/r600/evergreen_state.c22
-rw-r--r--src/gallium/drivers/r600/r600.h1
-rw-r--r--src/gallium/drivers/r600/r600_asm.c1
-rw-r--r--src/gallium/drivers/r600/r600_pipe.c2
-rw-r--r--src/gallium/winsys/r600/drm/r600.c2
-rw-r--r--src/gallium/winsys/r600/drm/r600_drm.c2
-rw-r--r--src/gallium/winsys/r600/drm/radeon_pciid.c6
7 files changed, 36 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 26dad7b65c..0509522d81 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -1036,11 +1036,33 @@ void evergreen_init_config(struct r600_pipe_context *rctx)
num_hs_stack_entries = 85;
num_ls_stack_entries = 85;
break;
+ case CHIP_PALM:
+ num_ps_gprs = 93;
+ num_vs_gprs = 46;
+ num_temp_gprs = 4;
+ num_gs_gprs = 31;
+ num_es_gprs = 31;
+ num_hs_gprs = 23;
+ num_ls_gprs = 23;
+ num_ps_threads = 96;
+ num_vs_threads = 16;
+ num_gs_threads = 16;
+ num_es_threads = 16;
+ num_hs_threads = 16;
+ num_ls_threads = 16;
+ num_ps_stack_entries = 42;
+ num_vs_stack_entries = 42;
+ num_gs_stack_entries = 42;
+ num_es_stack_entries = 42;
+ num_hs_stack_entries = 42;
+ num_ls_stack_entries = 42;
+ break;
}
tmp = 0x00000000;
switch (family) {
case CHIP_CEDAR:
+ case CHIP_PALM:
break;
default:
tmp |= S_008C00_VC_ENABLE(1);
diff --git a/src/gallium/drivers/r600/r600.h b/src/gallium/drivers/r600/r600.h
index a617a5b863..2ab60f3086 100644
--- a/src/gallium/drivers/r600/r600.h
+++ b/src/gallium/drivers/r600/r600.h
@@ -91,6 +91,7 @@ enum radeon_family {
CHIP_JUNIPER,
CHIP_CYPRESS,
CHIP_HEMLOCK,
+ CHIP_PALM,
CHIP_LAST,
};
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index ba1471eb78..edadedff25 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -151,6 +151,7 @@ int r600_bc_init(struct r600_bc *bc, enum radeon_family family)
case CHIP_JUNIPER:
case CHIP_CYPRESS:
case CHIP_HEMLOCK:
+ case CHIP_PALM:
bc->chiprev = CHIPREV_EVERGREEN;
break;
default:
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index cb8dd44474..511e52fbce 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -147,6 +147,7 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void
case CHIP_JUNIPER:
case CHIP_CYPRESS:
case CHIP_HEMLOCK:
+ case CHIP_PALM:
rctx->context.draw_vbo = evergreen_draw;
evergreen_init_state_functions(rctx);
if (evergreen_context_init(&rctx->ctx, rctx->radeon)) {
@@ -238,6 +239,7 @@ static const char *r600_get_family_name(enum radeon_family family)
case CHIP_JUNIPER: return "AMD JUNIPER";
case CHIP_CYPRESS: return "AMD CYPRESS";
case CHIP_HEMLOCK: return "AMD HEMLOCK";
+ case CHIP_PALM: return "AMD PALM";
default: return "AMD unknown";
}
}
diff --git a/src/gallium/winsys/r600/drm/r600.c b/src/gallium/winsys/r600/drm/r600.c
index b22f972173..f5e53e21f5 100644
--- a/src/gallium/winsys/r600/drm/r600.c
+++ b/src/gallium/winsys/r600/drm/r600.c
@@ -98,6 +98,7 @@ struct radeon *r600_new(int fd, unsigned device)
case CHIP_JUNIPER:
case CHIP_CYPRESS:
case CHIP_HEMLOCK:
+ case CHIP_PALM:
break;
case CHIP_R100:
case CHIP_RV100:
@@ -154,6 +155,7 @@ struct radeon *r600_new(int fd, unsigned device)
case CHIP_JUNIPER:
case CHIP_CYPRESS:
case CHIP_HEMLOCK:
+ case CHIP_PALM:
r600->chip_class = EVERGREEN;
break;
default:
diff --git a/src/gallium/winsys/r600/drm/r600_drm.c b/src/gallium/winsys/r600/drm/r600_drm.c
index 6742993ef3..8b1d88aed7 100644
--- a/src/gallium/winsys/r600/drm/r600_drm.c
+++ b/src/gallium/winsys/r600/drm/r600_drm.c
@@ -150,6 +150,7 @@ struct radeon *radeon_new(int fd, unsigned device)
case CHIP_JUNIPER:
case CHIP_CYPRESS:
case CHIP_HEMLOCK:
+ case CHIP_PALM:
break;
case CHIP_R100:
case CHIP_RV100:
@@ -211,6 +212,7 @@ struct radeon *radeon_new(int fd, unsigned device)
case CHIP_JUNIPER:
case CHIP_CYPRESS:
case CHIP_HEMLOCK:
+ case CHIP_PALM:
radeon->chip_class = EVERGREEN;
/* set default group bytes, overridden by tiling info ioctl */
radeon->tiling_info.group_bytes = 512;
diff --git a/src/gallium/winsys/r600/drm/radeon_pciid.c b/src/gallium/winsys/r600/drm/radeon_pciid.c
index bd82158b32..18bddc1a7a 100644
--- a/src/gallium/winsys/r600/drm/radeon_pciid.c
+++ b/src/gallium/winsys/r600/drm/radeon_pciid.c
@@ -441,6 +441,10 @@ struct pci_id radeon_pci_id[] = {
{0x1002, 0x9713, CHIP_RS880},
{0x1002, 0x9714, CHIP_RS880},
{0x1002, 0x9715, CHIP_RS880},
+ {0x1002, 0x9802, CHIP_PALM},
+ {0x1002, 0x9803, CHIP_PALM},
+ {0x1002, 0x9804, CHIP_PALM},
+ {0x1002, 0x9805, CHIP_PALM},
{0, 0},
};
@@ -477,6 +481,7 @@ int radeon_is_family_compatible(unsigned family1, unsigned family2)
case CHIP_JUNIPER:
case CHIP_CYPRESS:
case CHIP_HEMLOCK:
+ case CHIP_PALM:
switch (family2) {
case CHIP_R600:
case CHIP_RV610:
@@ -495,6 +500,7 @@ int radeon_is_family_compatible(unsigned family1, unsigned family2)
case CHIP_JUNIPER:
case CHIP_CYPRESS:
case CHIP_HEMLOCK:
+ case CHIP_PALM:
return 1;
default:
return 0;