From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <99b249533ab26e79161b6b9c3fef26df@plan9.bell-labs.com> To: 9fans@cse.psu.edu Subject: Re: [9fans] magicgraph 128 ZV From: "Russ Cox" In-Reply-To: <3E0C28CD.3090108@csh.rit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Date: Fri, 27 Dec 2002 06:34:44 -0500 Topicbox-Message-UUID: 37c53522-eacb-11e9-9e20-41e7f4b1d025 > That's an understatement. Reading that code is like pulling teeth. > I've also been using the slightly more readable, but less full featured > neofb.c in the linux kernel. (seems to have similar syntax and layout). > I have no idea even where to start to figure out why the images are > garbled... The images are garbled because you are setting some register wrong. The trick is to figure out which register. The relevant file is neo_driver.c, and you want to find out what executes when nPtr->NeoChipset == NM2093 (or NM2097, if you have a ZV+) that's different from the NM2160 and the NM2200. Quickly scanning through, it looks like you might try commenting out: vgaxo(Grx, PanelHorizCenterReg4, vga->graphics[PanelHorizCenterReg4]); vgaxo(Grx, PanelVertCenterReg5, vga->graphics[PanelVertCenterReg5]); vgaxo(Grx, PanelHorizCenterReg5, vga->graphics[PanelHorizCenterReg5]); because those registers are only written for the later chipsets. Also, what did you put in as the f[1], vmz, and apz values? It looks to me like it should say vga->f[1] = 80000000; vga->vmz = 1152*1024; vga->apz = 16*1042*1024; If you were using f[1] = 90000000 (like the 128 XD in the driver) then that might explain your garbled screen. I'm very suspicious of vga->apz being that large. It looks to me like it's actually much smaller for all the cards, but as long as we don't touch memory that isn't there, nothing bad will happen. What does the "pci" command print on your system? Russ