| 1 | --- a/hw/xfree86/common/xf86AutoConfig.c |
| 2 | +++ b/hw/xfree86/common/xf86AutoConfig.c |
| 3 | @@ -76,6 +76,13 @@ |
| 4 | "\tDevice\t" BUILTIN_DEVICE_NAME "\n" \ |
| 5 | "EndSection\n\n" |
| 6 | |
| 7 | +#define BUILTIN_SCREEN_SECTION_PROPRIETARY \ |
| 8 | + "Section \"Screen\"\n" \ |
| 9 | + "\tIdentifier\t" BUILTIN_SCREEN_NAME "\n" \ |
| 10 | + "\tDevice\t" BUILTIN_DEVICE_NAME "\n" \ |
| 11 | + "\tDefaultDepth\t24\n" \ |
| 12 | + "EndSection\n\n" |
| 13 | + |
| 14 | #define BUILTIN_LAYOUT_SECTION_PRE \ |
| 15 | "Section \"ServerLayout\"\n" \ |
| 16 | "\tIdentifier\t\"Builtin Default Layout\"\n" |
| 17 | @@ -154,7 +161,11 @@ xf86AutoConfig(void) |
| 18 | for (p = deviceList; *p; p++) { |
| 19 | snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION, *p, 0, *p); |
| 20 | AppendToConfig(buf); |
| 21 | - snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0); |
| 22 | + if (strcmp(*p, "fglrx") == 0 || strcmp(*p, "nvidia") == 0) |
| 23 | + snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION_PROPRIETARY, *p, |
| 24 | + 0, *p, 0); |
| 25 | + else |
| 26 | + snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0); |
| 27 | AppendToConfig(buf); |
| 28 | } |
| 29 | |
| 30 | --- a/hw/xfree86/common/xf86pciBus.c |
| 31 | +++ b/hw/xfree86/common/xf86pciBus.c |
| 32 | @@ -1132,7 +1132,8 @@ xf86VideoPtrToDriverList(struct pci_devi |
| 33 | driverList[0] = "ast"; |
| 34 | break; |
| 35 | case 0x1002: |
| 36 | - driverList[0] = "ati"; |
| 37 | + driverList[0] = "fglrx"; |
| 38 | + driverList[1] = "ati"; |
| 39 | break; |
| 40 | case 0x102c: |
| 41 | driverList[0] = "chips"; |
| 42 | @@ -1216,6 +1217,7 @@ xf86VideoPtrToDriverList(struct pci_devi |
| 43 | { |
| 44 | int idx = 0; |
| 45 | |
| 46 | + driverList[idx++] = "nvidia"; |
| 47 | #ifdef __linux__ |
| 48 | driverList[idx++] = "nouveau"; |
| 49 | #endif |