nouveau: NV9X is basically a G80, fix issue with NV6X being detected as G80.
diff --git a/src/gallium/drivers/nv50/nv50_screen.c b/src/gallium/drivers/nv50/nv50_screen.c
index 62c23c7..721c642 100644
--- a/src/gallium/drivers/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nv50/nv50_screen.c
@@ -6,8 +6,9 @@
#include "nouveau/nouveau_stateobj.h"
-#define GRCLASS5097_CHIPSETS 0x00000000
-#define GRCLASS8297_CHIPSETS 0x00000010
+#define NV5X_GRCLASS5097_CHIPSETS 0x00000001
+#define NV8X_GRCLASS8297_CHIPSETS 0x00000010
+#define NV9X_GRCLASS8297_CHIPSETS 0x00000004
static boolean
nv50_screen_is_format_supported(struct pipe_screen *pscreen,
@@ -117,12 +118,24 @@
return NULL;
}
- if (GRCLASS5097_CHIPSETS & (1 << (chipset & 0x0f))) {
- tesla_class = 0x5097;
- } else
- if (GRCLASS8297_CHIPSETS & (1 << (chipset & 0x0f))) {
- tesla_class = 0x8297;
- } else {
+ switch (chipset & 0xf0) {
+ case 0x50:
+ if (NV5X_GRCLASS5097_CHIPSETS & (1 << (chipset & 0x0f)))
+ tesla_class = 0x5097;
+ break;
+ case 0x80:
+ if (NV8X_GRCLASS8297_CHIPSETS & (1 << (chipset & 0x0f)))
+ tesla_class = 0x8297;
+ break;
+ case 0x90:
+ if (NV9X_GRCLASS8297_CHIPSETS & (1 << (chipset & 0x0f)))
+ tesla_class = 0x8297;
+ break;
+ default:
+ break;
+ }
+
+ if (tesla_class == 0) {
NOUVEAU_ERR("Unknown G8x chipset: NV%02x\n", chipset);
nv50_screen_destroy(&screen->pipe);
return NULL;