[syslinux] [PATCH] i915resolution: add id for GM45 chipset

Lucas De Marchi lucas.demarchi at profusion.mobi
Fri Nov 19 07:27:03 PST 2010


Tested with a Dell Vostro 1320 laptop. After booting with
'MENU RESOLUTION 1280 800' in config file, this is the ouput
of 'hwinfo --framebuffer':

	02: None 00.0: 11001 VESA Framebuffer
	  [Created at bios.459]
	  Unique ID: rdCR.fRULN9k9OD4
	  Hardware Class: framebuffer
	  Model: "Intel(r)Cantiga Graphics Controller"
	  Vendor: "Intel Corporation"
	  Device: "Intel(r)Cantiga Graphics Controller"
	  SubVendor: "Intel(r)Cantiga Graphics Chip Accelerated VGA BIOS"
	  SubDevice:
	  Revision: "Hardware Version 0.0"
	  Memory Size: 31 MB + 960 kB
	  Memory Range: 0xd0000000-0xd1feffff (rw)
	  Mode 0x0305: 1024x768 (+1024), 8 bits
	  Mode 0x0317: 1024x768 (+2048), 16 bits
	  Mode 0x0318: 1024x768 (+4096), 24 bits
	  Mode 0x0312: 640x480 (+2560), 24 bits
	  Mode 0x0314: 1280x800 (+2560), 16 bits
	  Mode 0x0315: 1280x800 (+5120), 24 bits
	  Mode 0x0301: 640x480 (+640), 8 bits
	  Mode 0x0303: 1280x800 (+1280), 8 bits
	  Mode 0x0311: 640x480 (+1280), 16 bits
	  Config Status: cfg=new, avail=yes, need=no, active=unknown

Signed-off-by: Lucas De Marchi <lucas.demarchi at profusion.mobi>
---
 com32/lib/sys/vesa/i915resolution.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/com32/lib/sys/vesa/i915resolution.c b/com32/lib/sys/vesa/i915resolution.c
index 6ebb04d..1249524 100644
--- a/com32/lib/sys/vesa/i915resolution.c
+++ b/com32/lib/sys/vesa/i915resolution.c
@@ -75,7 +75,7 @@ typedef unsigned char * address;
 
 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_945GME,
+    CT_945G, CT_945GM, CT_946GZ, CT_G965, CT_GM45, CT_Q965, CT_945GME,
     CHIPSET_TYPES
 } chipset_type;
 
@@ -262,6 +262,10 @@ static chipset_type get_chipset(unsigned int id) {
 	type = CT_945GME;
 	break;
 
+    case 0x2a408086:
+        type = CT_GM45;
+        break;
+
     default:
         type = CT_UNKWN;
         break;
@@ -477,6 +481,7 @@ static void unlock_vbios(vbios_map * map)
     case CT_945GME:
     case CT_946GZ:
     case CT_G965:
+    case CT_GM45:
     case CT_Q965:
 	map->b1 = pci_readb(0x80000091);
 	map->b2 = pci_readb(0x80000092);
@@ -515,6 +520,7 @@ static void relock_vbios(vbios_map * map)
     case CT_945GME:
     case CT_946GZ:
     case CT_G965:
+    case CT_GM45:
     case CT_Q965:
 	pci_writeb(map->b1, 0x80000091);
 	pci_writeb(map->b2, 0x80000092);
@@ -740,7 +746,7 @@ static inline void display_map_info(vbios_map * map) {
 	{"UNKNOWN", "TYPE 1", "TYPE 2", "TYPE 3"};
     static const char * chipset_type_names[] = {
 	"UNKNOWN", "830", "845G", "855GM", "865G", "915G", "915GM", "945G",
-	"945GM", "946GZ", "G965", "Q965", "945GME"
+	"945GM", "946GZ", "G965", "GM45", "Q965", "945GME"
     };
 
     debug("Chipset: %s\r\n", chipset_type_names[map->chipset]);
-- 
1.7.3.2




More information about the Syslinux mailing list