9front - general discussion about 9front
 help / color / mirror / Atom feed
* igfx: support gm915
@ 2019-03-04  7:31 qwx
  0 siblings, 0 replies; only message in thread
From: qwx @ 2019-03-04  7:31 UTC (permalink / raw)
  To: 9front

Hello,

I had to add support to igfx for an old chip (915GM) present on t43
boards.

Background:
A t43p with a faulty motherboard was acquired.  The 1600x1200 screen was
transplanted onto a t43 with igfx.  It worked, but wrong horizontal
timings were programmed with VESA, and the picture was offset to the right
by about 200 pixels.

What works: lvds, blanking
What doesn't: hwgc (not visible), snarfing edid (monitor=auto won't work),
Untested so far: vga output

I know it's an old chip and an odd configuration, but the changes are
very small.

Should I commit this?

Thanks!

qwx


diff -r a13de2f0ddc3 lib/vgadb
--- a/lib/vgadb	Mon Mar 04 03:13:29 2019 +0100
+++ b/lib/vgadb	Mon Mar 04 08:25:25 2019 +0100
@@ -442,6 +442,7 @@
 	ctlr=igfx linear=1
 
 ctlr
+	vid=0x8086 did=0x2592	# Intel 915GM
 	vid=0x8086 did=0x27a2	# Intel GM945/82940GML (hardware cursor broken)
 	vid=0x8086 did=0x2a02	# Intel GM965/GL960/X3100 (hardware cursor broken)
 	link=vga
@@ -1843,3 +1844,13 @@
 	shs=1072
 	vrs=771 vre=777 vt=806
 	hsync=- vsync=-
+
+#
+# IBM Thinkpad t43 with t43p screen
+#
+t43p=1600x1200
+	lcd=1
+	defaultclock=162
+	shb=1664 ehb=1856 ht=2160
+	vrs=1201 vre=1204 vt=1250
+	hsync=+ vsync=+
diff -r a13de2f0ddc3 sys/src/9/pc/vgaigfx.c
--- a/sys/src/9/pc/vgaigfx.c	Mon Mar 04 03:13:29 2019 +0100
+++ b/sys/src/9/pc/vgaigfx.c	Mon Mar 04 08:25:25 2019 +0100
@@ -66,6 +66,7 @@
 
 	case 0x2a02:	/* GM965 */
 	case 0x2a42:	/* GM45 */
+	case 0x2592:	/* GM915 */
 		off = 0x61204;
 		break;
 
@@ -156,6 +157,7 @@
 		if(pipe > 2)
 			return nil;
 		break;
+	case 0x2592:	/* GM915 */
 	case 0x2a42:	/* X200 */
 	case 0x29a2:	/* 82P965/G965 HECI desktop */
 	case 0x2a02:	/* CF-R7 */
diff -r a13de2f0ddc3 sys/src/cmd/aux/vga/igfx.c
--- a/sys/src/cmd/aux/vga/igfx.c	Mon Mar 04 03:13:29 2019 +0100
+++ b/sys/src/cmd/aux/vga/igfx.c	Mon Mar 04 08:25:25 2019 +0100
@@ -379,6 +379,7 @@
 	case 0x29a2:	/* 82P965/G965 HECI desktop */
 	case 0x2a02:	/* GM965/GL960/X3100 - ThinkPad X61 Tablet */
 	case 0x2a42:	/* 4 Series Mobile - ThinkPad X200 */
+	case 0x2592:	/* 915GM */
 		return TypeG45;
 	}
 	return -1;
@@ -889,7 +890,7 @@
 	dpll->ctrl.v |=  0x010000<<(p1-1);
 
 	/* FP1 P1 Post divisor */
-	if(igfx->pci->did != 0x27a2){
+	if(igfx->pci->did != 0x27a2 && igfx->pci->did != 0x2592){
 		dpll->ctrl.v &= ~0xFF;
 		dpll->ctrl.v |=  0x01<<(p1-1);
 		dpll->fp1.v = dpll->fp0.v;


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-03-04  7:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-04  7:31 igfx: support gm915 qwx

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).