shithub: riscv

Download patch

ref: 01a1d96315b43501fceaf60b188bcba3fd5d5ab7
parent: 21b0bafd100e605101b6614a295516df1774724c
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sat Jan 10 23:03:14 EST 2015

igfx: only use mmio... left from debugging

--- a/sys/src/cmd/aux/vga/igfx.c
+++ b/sys/src/cmd/aux/vga/igfx.c
@@ -332,14 +332,15 @@
 			return;
 		}
 		vgactlpci(igfx->pci);
-		if((igfx->pci->mem[4].bar & 1) == 0)
-			error("%s: no pio bar\n", ctlr->name);
-		igfx->pio = igfx->pci->mem[4].bar & ~1;
 		if(1){
 			vgactlw("type", ctlr->name);
 			igfx->mmio = segattach(0, "igfxmmio", 0, igfx->pci->mem[0].size);
 			if(igfx->mmio == (u32int*)-1)
-				igfx->mmio = nil;	/* use pio */
+				error("%s: attaching mmio: %r\n", ctlr->name);
+		} else {
+			if((igfx->pci->mem[4].bar & 1) == 0)
+				error("%s: no pio bar\n", ctlr->name);
+			igfx->pio = igfx->pci->mem[4].bar & ~1;
 		}
 		vga->private = igfx;
 	}
@@ -362,7 +363,7 @@
 
 		for(x=0; x<5; x++)
 			igfx->gmbus[x]	= snarfreg(igfx, 0x5100 + x*4);
-		igfx->gmbus[5]	= snarfreg(igfx, 0x5120);
+		igfx->gmbus[x]	= snarfreg(igfx, 0x5120);
 
 		igfx->pfit[0].ctrl	= snarfreg(igfx, 0x061230);
 		y = (igfx->pfit[0].ctrl.v >> 29) & 3;
@@ -439,6 +440,10 @@
 		igfx->hdmi[3].bufctl[2]	= snarfreg(igfx, 0x0FD018);	/* HTMI_BUF_CTL_10 */
 		igfx->hdmi[3].bufctl[3]	= snarfreg(igfx, 0x0FD024);	/* HTMI_BUF_CTL_11 */
 
+		for(x=0; x<5; x++)
+			igfx->gmbus[x]	= snarfreg(igfx, 0xC5100 + x*4);
+		igfx->gmbus[x]	= snarfreg(igfx, 0xC5120);
+
 		igfx->adpa		= snarfreg(igfx, 0x0E1100);	/* DAC_CTL */
 		igfx->lvds		= snarfreg(igfx, 0x0E1180);	/* LVDS_CTL */
 
@@ -1241,8 +1246,6 @@
 {
 	uchar buf[128];
 
-	if(igfx->type != TypeG45)
-		return;
 	if(gmbusread(igfx, 3, 0x50, buf, sizeof(buf)) != sizeof(buf))
 		return;
 	igfx->lvdsedid = malloc(sizeof(Edid));