r600g: add llano support
authorAlex Deucher <alexdeucher@gmail.com>
Mon, 4 Apr 2011 16:06:11 +0000 (12:06 -0400)
committerAlex Deucher <alexdeucher@gmail.com>
Tue, 31 May 2011 22:10:01 +0000 (18:10 -0400)
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600.h
src/gallium/drivers/r600/r600_asm.c
src/gallium/drivers/r600/r600_pipe.c
src/gallium/winsys/r600/drm/r600_drm.c
src/gallium/winsys/r600/drm/radeon_pciid.c

index 14860af4dd3f8e12bb059efa2c614de87f489c64..ea37b17c9a4fb63cb1d3c9a525c36c306dea31f5 100644 (file)
@@ -1253,6 +1253,48 @@ void evergreen_init_config(struct r600_pipe_context *rctx)
                num_hs_stack_entries = 42;
                num_ls_stack_entries = 42;
                break;
+       case CHIP_SUMO:
+               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 = 25;
+               num_gs_threads = 25;
+               num_es_threads = 25;
+               num_hs_threads = 25;
+               num_ls_threads = 25;
+               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;
+       case CHIP_SUMO2:
+               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 = 25;
+               num_gs_threads = 25;
+               num_es_threads = 25;
+               num_hs_threads = 25;
+               num_ls_threads = 25;
+               num_ps_stack_entries = 85;
+               num_vs_stack_entries = 85;
+               num_gs_stack_entries = 85;
+               num_es_stack_entries = 85;
+               num_hs_stack_entries = 85;
+               num_ls_stack_entries = 85;
+               break;
        case CHIP_BARTS:
                num_ps_gprs = 93;
                num_vs_gprs = 46;
@@ -1322,6 +1364,8 @@ void evergreen_init_config(struct r600_pipe_context *rctx)
        switch (family) {
        case CHIP_CEDAR:
        case CHIP_PALM:
+       case CHIP_SUMO:
+       case CHIP_SUMO2:
        case CHIP_CAICOS:
                break;
        default:
index 996418aa03a091f6c6a84bb539b75063e6aec473..b90de7c65d6a75df0a11805614ce4d6597498daf 100644 (file)
@@ -92,6 +92,8 @@ enum radeon_family {
        CHIP_CYPRESS,
        CHIP_HEMLOCK,
        CHIP_PALM,
+       CHIP_SUMO,
+       CHIP_SUMO2,
        CHIP_BARTS,
        CHIP_TURKS,
        CHIP_CAICOS,
index 00572cbd5bde599039741df3cd038cc01f67f14b..dda429e48faac0d4c93eeead1e9384e3bafdc3ea 100644 (file)
@@ -222,6 +222,8 @@ int r600_bc_init(struct r600_bc *bc, enum radeon_family family)
        case CHIP_CYPRESS:
        case CHIP_HEMLOCK:
        case CHIP_PALM:
+       case CHIP_SUMO:
+       case CHIP_SUMO2:
        case CHIP_BARTS:
        case CHIP_TURKS:
        case CHIP_CAICOS:
index 402ccb27fe3423f5b10d3166b5d43e614419c6c0..f924d798765fab96f831086a81359810b3288773 100644 (file)
@@ -259,6 +259,8 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void
        case CHIP_CYPRESS:
        case CHIP_HEMLOCK:
        case CHIP_PALM:
+       case CHIP_SUMO:
+       case CHIP_SUMO2:
        case CHIP_BARTS:
        case CHIP_TURKS:
        case CHIP_CAICOS:
@@ -334,6 +336,8 @@ static const char *r600_get_family_name(enum radeon_family family)
        case CHIP_CYPRESS: return "AMD CYPRESS";
        case CHIP_HEMLOCK: return "AMD HEMLOCK";
        case CHIP_PALM: return "AMD PALM";
+       case CHIP_SUMO: return "AMD SUMO";
+       case CHIP_SUMO2: return "AMD SUMO2";
        case CHIP_BARTS: return "AMD BARTS";
        case CHIP_TURKS: return "AMD TURKS";
        case CHIP_CAICOS: return "AMD CAICOS";
index cbed89d3abeb86cca99dbdd00e56e554dc220b02..03fe385334c54adf208b9111b9f57e7c1fb0a033 100644 (file)
@@ -320,6 +320,8 @@ static struct radeon *radeon_new(int fd, unsigned device)
        case CHIP_CYPRESS:
        case CHIP_HEMLOCK:
        case CHIP_PALM:
+       case CHIP_SUMO:
+       case CHIP_SUMO2:
        case CHIP_BARTS:
        case CHIP_TURKS:
        case CHIP_CAICOS:
index b999e45a8ec2297cde88b4d4a8c1bc563652b7d4..5c41a10bdba4c70359e7ccc2293a2bfcb0e14ecc 100644 (file)
@@ -439,6 +439,17 @@ static const struct pci_id radeon_pci_id[] = {
        {0x1002, 0x9614, CHIP_RS780},
        {0x1002, 0x9615, CHIP_RS780},
        {0x1002, 0x9616, CHIP_RS780},
+       {0x1002, 0x9640, CHIP_SUMO},
+       {0x1002, 0x9641, CHIP_SUMO},
+       {0x1002, 0x9642, CHIP_SUMO2},
+       {0x1002, 0x9643, CHIP_SUMO2},
+       {0x1002, 0x9644, CHIP_SUMO2},
+       {0x1002, 0x9645, CHIP_SUMO2},
+       {0x1002, 0x9647, CHIP_SUMO},
+       {0x1002, 0x9648, CHIP_SUMO},
+       {0x1002, 0x964a, CHIP_SUMO},
+       {0x1002, 0x964e, CHIP_SUMO},
+       {0x1002, 0x964f, CHIP_SUMO},
        {0x1002, 0x9710, CHIP_RS880},
        {0x1002, 0x9711, CHIP_RS880},
        {0x1002, 0x9712, CHIP_RS880},