| diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c |
| index 74016af..9c296f5 100644 |
| --- a/hw/xfree86/common/xf86pciBus.c |
| +++ b/hw/xfree86/common/xf86pciBus.c |
| @@ -1118,7 +1118,23 @@ videoPtrToDriverList(struct pci_device *dev, |
| break; |
| case 0x102b: driverList[0] = "mga"; break; |
| case 0x10c8: driverList[0] = "neomagic"; break; |
| - case 0x10de: case 0x12d2: driverList[0] = "nv"; break; |
| + case 0x10de: case 0x12d2: |
| + switch (dev->device_id) { |
| + /* NV1 */ |
| + case 0x0008: |
| + case 0x0009: |
| + driverList[0] = "vesa"; |
| + break; |
| + /* NV3 */ |
| + case 0x0018: |
| + case 0x0019: |
| + driverList[0] = "nv"; |
| + break; |
| + default: |
| + driverList[0] = "nouveau"; |
| + break; |
| + } |
| + break; |
| case 0x1106: driverList[0] = "openchrome"; break; |
| case 0x1b36: driverList[0] = "qxl"; break; |
| case 0x1163: driverList[0] = "rendition"; break; |
| -- |