diff -Nru 915resolution-0.5.3/915resolution.c_orig 915resolution-0.5.3/915resolution.c
--- 915resolution-0.5.3/915resolution.c_orig 2007-04-15 12:46:56.000000000 +0200
+++ 915-resolution-0.5.3/915resolution.c 2007-07-15 21:21:05.000000000 +0200
@@ -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
} chipset_type;
char * chipset_type_names[] = {
"UNKNOWN", "830", "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM",
- "946GZ", "G965", "Q965"
+ "946GZ", "G965", "Q965", "965GM"
};
typedef enum {
@@ -225,6 +225,10 @@
type = CT_Q965;
break;
+ case 0x2a008086:
+ type = CT_965GM;
+ break;
+
default:
type = CT_UNKWN;
break;
@@ -511,6 +515,7 @@
case CT_946GZ:
case CT_G965:
case CT_Q965:
+ case CT_965GM:
outl(0x80000090, 0xcf8);
map->b1 = inb(0xcfd);
map->b2 = inb(0xcfe);
@@ -551,6 +556,7 @@
case CT_946GZ:
case CT_G965:
case CT_Q965:
+ case CT_965GM:
outl(0x80000090, 0xcf8);
outb(map->b1, 0xcfd);
outb(map->b2, 0xcfe);
@@ -809,6 +815,9 @@
else if (!strcmp(argv[index], "G965")) {
*forced_chipset = CT_G965;
}
+ else if (!strcmp(argv[index], "965GM")) {
+ *forced_chipset = CT_965GM;
+ }
else if (!strcmp(argv[index], "Q965")) {
*forced_chipset = CT_Q965;
}