Package: 915resolution
Version: 0.5.2-6
Severity: wishlist
Tags: patch

Attached is a patch adding support for the new Intel chipsets to
915resolution, namely 946GZ, 965G and 965Q.

I only tested this patch with a 965G, but it works for me (tm).

Looking at the code in the last xorg-video-i810, the same code working
for the 915 chipset will work for the added ones.  The chipset IDs were
looked up there, too.

This patch was already sent upstream on Sep. 29th, without an answer.
I definitely find that it would be a good addition for etch.

Regards,
-- 
Jérémy
diff -urN 915resolution-0.5.2.old/915resolution.c 
915resolution-0.5.2/915resolution.c
--- 915resolution-0.5.2.old/915resolution.c     2006-09-28 13:08:29.000000000 
+0200
+++ 915resolution-0.5.2/915resolution.c 2006-09-28 13:16:49.000000000 +0200
@@ -55,10 +55,14 @@
 typedef unsigned int cardinal;
 
 typedef enum {
-    CT_UNKWN, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM 
+    CT_UNKWN, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM,
+    CT_946GZ, CT_965Q, CT_965G
 } chipset_type;
 
-char * chipset_type_names[] = {"UNKNOWN", "845G", "855GM", "865G", "915G", 
"915GM", "945G", "945GM"};
+char * chipset_type_names[] = {
+    "UNKNOWN", "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM",
+    "946GZ", "965Q", "965G"
+};
 
 typedef enum {
     BT_UNKWN, BT_1, BT_2, BT_3
@@ -205,6 +209,18 @@
         type = CT_945GM;
         break;
 
+    case 0x29708086:
+        type = CT_946GZ;
+        break;
+
+    case 0x29908086:
+        type = CT_965Q;
+        break;
+
+    case 0x29a08086:
+        type = CT_965G;
+        break;
+    
     default:
         type = CT_UNKWN;
         break;
@@ -488,6 +504,9 @@
         case CT_915GM:
         case CT_945G:
         case CT_945GM:
+        case CT_946GZ:
+        case CT_965Q:
+        case CT_965G:
             outl(0x80000090, 0xcf8);
             map->b1 = inb(0xcfd);
             map->b2 = inb(0xcfe);
@@ -535,6 +554,9 @@
         case CT_915GM:
         case CT_945G:
         case CT_945GM:
+        case CT_946GZ:
+        case CT_965Q:
+        case CT_965G:
             outl(0x80000090, 0xcf8);
             outb(map->b1, 0xcfd);
             outb(map->b2, 0xcfe);
@@ -773,6 +795,15 @@
         else if (!strcmp(argv[index], "945GM")) {
             *forced_chipset = CT_945GM;
         }
+        else if (!strcmp(argv[index], "946GZ")) {
+            *forced_chipset = CT_946GZ;
+        }
+        else if (!strcmp(argv[index], "965Q")) {
+            *forced_chipset = CT_965Q;
+        }
+        else if (!strcmp(argv[index], "965G")) {
+            *forced_chipset = CT_965G;
+        }
         else {
             *forced_chipset = CT_UNKWN;
         }

Attachment: signature.asc
Description: Digital signature

Reply via email to