--- 915resolution-0.5.3/915resolution.c.newchp 2007-01-26 15:54:08.000000000 +0100 +++ 915resolution-0.5.3/915resolution.c 2007-01-26 16:02:10.000000000 +0100 @@ -56,12 +56,12 @@ typedef enum { CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM, - CT_946GZ, CT_G965, CT_Q965 + CT_946GZ, CT_G965, CT_Q965, CT_965GM, CT_G33, CT_Q33, CT_Q35 } chipset_type; char * chipset_type_names[] = { "UNKNOWN", "830", "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM", - "946GZ", "G965", "Q965" + "946GZ", "G965", "Q965", "965GM", "G33", "Q33", "Q35" }; typedef enum { @@ -225,6 +225,22 @@ type = CT_Q965; break; + case 0x2a008086: + type = CT_965GM; + break; + + case 0x29c08086: + type = CT_G33; + break; + + case 0x29b08086: + type = CT_Q35; + break; + + case 0x29d08086: + type = CT_Q33; + break; + default: type = CT_UNKWN; break; @@ -511,6 +527,10 @@ case CT_946GZ: case CT_G965: case CT_Q965: + case CT_965GM: + case CT_G33: + case CT_Q35: + case CT_Q33: outl(0x80000090, 0xcf8); map->b1 = inb(0xcfd); map->b2 = inb(0xcfe); @@ -551,6 +571,10 @@ case CT_946GZ: case CT_G965: case CT_Q965: + case CT_965GM: + case CT_G33: + case CT_Q35: + case CT_Q33: outl(0x80000090, 0xcf8); outb(map->b1, 0xcfd); outb(map->b2, 0xcfe); @@ -864,6 +888,18 @@ else if (!strcmp(argv[index], "Q965")) { *forced_chipset = CT_Q965; } + else if (!strcmp(argv[index], "965GM")) { + *forced_chipset = CT_965GM; + } + else if (!strcmp(argv[index], "G33")) { + *forced_chipset = CT_G33; + } + else if (!strcmp(argv[index], "Q35")) { + *forced_chipset = CT_Q35; + } + else if (!strcmp(argv[index], "Q33")) { + *forced_chipset = CT_Q33; + } else { *forced_chipset = CT_UNKWN; }