r600c: add Ontario Fusion APU support
authorAlex Deucher <alexdeucher@gmail.com>
Mon, 22 Nov 2010 18:25:42 +0000 (13:25 -0500)
committerAlex Deucher <alexdeucher@gmail.com>
Mon, 22 Nov 2010 23:01:25 +0000 (18:01 -0500)
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
src/mesa/drivers/dri/r600/evergreen_state.c
src/mesa/drivers/dri/r600/r600_context.c
src/mesa/drivers/dri/radeon/radeon_chipset.h
src/mesa/drivers/dri/radeon/radeon_common_context.c
src/mesa/drivers/dri/radeon/radeon_screen.c

index a77be183a1212e28dacd1177bc04c28313d37211..076a608573ced0ac605bfcafc4c62ee5c68d7043 100644 (file)
@@ -1461,6 +1461,14 @@ static void evergreenInitSQConfig(struct gl_context * ctx)
         uMaxThreads = 248;
         uMaxStackEntries = 512;
            break;
+    case CHIP_FAMILY_PALM:
+           uSqNumCfInsts       = 1;
+        bVC_ENABLE = GL_FALSE;
+        uMaxGPRs = 256;
+        uPSThreadCount = 96;
+        uMaxThreads = 192;
+        uMaxStackEntries = 256;
+           break;
     default:
         uSqNumCfInsts       = 2;
         bVC_ENABLE = GL_TRUE;
index b6443bf0c535153b5335154f729448157e74074d..057d98e0fc585897b0ad3c6d8ee5ca30837573f9 100644 (file)
@@ -259,7 +259,7 @@ static void r600InitConstValues(struct gl_context *ctx, radeonScreenPtr screen)
     R700_CHIP_CONTEXT *r700    = (R700_CHIP_CONTEXT*)(&context->hw);
 
     if(  (context->radeon.radeonScreen->chip_family >= CHIP_FAMILY_CEDAR)
-       &&(context->radeon.radeonScreen->chip_family <= CHIP_FAMILY_HEMLOCK) )
+       &&(context->radeon.radeonScreen->chip_family <= CHIP_FAMILY_PALM) )
     {
         r700->bShaderUseMemConstant = GL_TRUE;
     }
index 61106fbc43f5b6777a9ecae5baa09d802270c75d..82789cec5ed4b3def8b00f0e7b04ae345e32e7d9 100644 (file)
 #define PCI_CHIP_HEMLOCK_689C           0x689C
 #define PCI_CHIP_HEMLOCK_689D           0x689D
 
+#define PCI_CHIP_PALM_9802              0x9802
+#define PCI_CHIP_PALM_9803              0x9803
+#define PCI_CHIP_PALM_9804              0x9804
+#define PCI_CHIP_PALM_9805              0x9805
+
 enum {
    CHIP_FAMILY_R100,
    CHIP_FAMILY_RV100,
@@ -483,6 +488,7 @@ enum {
    CHIP_FAMILY_JUNIPER,
    CHIP_FAMILY_CYPRESS,
    CHIP_FAMILY_HEMLOCK,
+   CHIP_FAMILY_PALM,
    CHIP_FAMILY_LAST
 };
 
index fecdd11905902220e7aef154777347e1e200823c..ca6ab46ca436cd3644591581f07e6c56ddaeee13 100644 (file)
@@ -99,6 +99,7 @@ static const char* get_chip_family_name(int chip_family)
        case CHIP_FAMILY_JUNIPER: return "JUNIPER";
        case CHIP_FAMILY_CYPRESS: return "CYPRESS";
        case CHIP_FAMILY_HEMLOCK: return "HEMLOCK";
+       case CHIP_FAMILY_PALM: return "PALM";
        default: return "unknown";
        }
 }
index b379240579d49ecbfab965c15612b013235865af..94e56c2ade6d482b159baba517ee799ecb994228 100644 (file)
@@ -1155,6 +1155,14 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)
        screen->chip_flags = RADEON_CHIPSET_TCL;
        break;
 
+    case PCI_CHIP_PALM_9802:
+    case PCI_CHIP_PALM_9803:
+    case PCI_CHIP_PALM_9804:
+    case PCI_CHIP_PALM_9805:
+       screen->chip_family = CHIP_FAMILY_PALM;
+       screen->chip_flags = RADEON_CHIPSET_TCL;
+       break;
+
    default:
       fprintf(stderr, "unknown chip id 0x%x, can't guess.\n",
              device_id);