R300: add quadpipe overrides
authorAlex Deucher <alexdeucher@gmail.com>
Tue, 28 Apr 2009 16:50:38 +0000 (12:50 -0400)
committerAlex Deucher <alexdeucher@gmail.com>
Tue, 28 Apr 2009 16:50:38 +0000 (12:50 -0400)
RV410 SE chips only have 1 quadpipe.
Also, handle other R300 chip with quadpipe override.

src/mesa/drivers/dri/radeon/radeon_screen.c

index 9ce950af179486a35c8e710bd77c7b816785891b..70ae5d26e2e59507ccf2b04f201af18c59d3d1b5 100644 (file)
@@ -476,11 +476,7 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)
       screen->chip_family = CHIP_FAMILY_RS300;
       break;
 
-      /* 9500 with 1 pipe verified by: Reid Linnemann <lreid@cs.okstate.edu> */
    case PCI_CHIP_R300_AD:
-      screen->chip_family = CHIP_FAMILY_RV350;
-      screen->chip_flags = RADEON_CHIPSET_TCL;
-      break;
    case PCI_CHIP_R300_AE:
    case PCI_CHIP_R300_AF:
    case PCI_CHIP_R300_AG:
@@ -942,6 +938,17 @@ radeonCreateScreen( __DRIscreenPrivate *sPriv )
        } else {
           screen->num_gb_pipes = temp;
        }
+
+       /* pipe overrides */
+       switch (dri_priv->deviceID) {
+       case PCI_CHIP_R300_AD: /* 9500 with 1 quadpipe verified by: Reid Linnemann <lreid@cs.okstate.edu> */
+       case PCI_CHIP_RV410_5E4C: /* RV410 SE only have 1 quadpipe */
+       case PCI_CHIP_RV410_5E4F: /* RV410 SE only have 1 quadpipe */
+          screen->num_gb_pipes = 1;
+          break;
+       default:
+          break;
+       }
    }
 
    if ( sPriv->drm_version.minor >= 10 ) {
@@ -1106,6 +1113,18 @@ radeonCreateScreen2(__DRIscreenPrivate *sPriv)
        } else {
           screen->num_gb_pipes = temp;
        }
+
+       /* pipe overrides */
+       switch (device_id) {
+       case PCI_CHIP_R300_AD: /* 9500 with 1 quadpipe verified by: Reid Linnemann <lreid@cs.okstate.edu> */
+       case PCI_CHIP_RV410_5E4C: /* RV410 SE only have 1 quadpipe */
+       case PCI_CHIP_RV410_5E4F: /* RV410 SE only have 1 quadpipe */
+          screen->num_gb_pipes = 1;
+          break;
+       default:
+          break;
+       }
+
    }
 
    if (screen->chip_family <= CHIP_FAMILY_RS200)