9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] NEC Versa LXi
@ 2001-12-17 10:16 stuartb
  0 siblings, 0 replies; 2+ messages in thread
From: stuartb @ 2001-12-17 10:16 UTC (permalink / raw)
  To: 9fans

Now that things at work look to be a little calmer than
usual and grades are turned in for the semester, I'm ready
to do a little playing.  The thing I'be been playing with
is running Plan9 on my work laptop, an NEC Versa LXi.

As you might guess, the thing that's giving me trouble is
the video.  It has a Savage/MX chip in it.  After putting
the right line in vgadb, I was able to install at 640x480.
When I start it up at any other resolution, I get an effect
I can't help but call a "floosh."  It sort of a fade-to-white
but not evenly across the panel.  If I hit the key sequence
to change the video routing, then the LCD shows the display
but with some of the left-hand part of the screen replicated
on the right.  If I boot it up docked, all is happy.  So,
it seems that the video routing is not being initialized
properly and when you switch video routing, a width parameter
gets corrupted.  I've isolated what gets corrupted.  It's
register crt 0x91.  As a really ugly kludge, I've added
a line in the kernel s3 code that resets that register
whenever the cursor is re-written, so now all I have to
do is move the cursor across a window border after switching
the video routing and I can use Plan9 on my LXi.  Another
guy at work just installed in his Versa with a Savage/IX
chip finds things work well right off the bat.

If you've made it through all that, maybe you can help
me.  I don't have any documentation on the MX chip, so
I'm flying blind trying to figure out what's happening.
Does anyone have any documentation on the MX who can
pass on what registers are used for setting the video
routing and what determines how crt 0x91 gets set on
a switch of routing?

Thanks in advance,
Brian L. Stuart


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [9fans] NEC Versa LXi
@ 2001-12-17 15:00 Russ Cox
  0 siblings, 0 replies; 2+ messages in thread
From: Russ Cox @ 2001-12-17 15:00 UTC (permalink / raw)
  To: stuartb, 9fans

Great bug report, thanks.

Have a look at /sys/src/cmd/aux/vga/virge.c.
Everywhere there is a case 0x8C12:, make sure
there is also a case 0x8C11: (your chip ID, I
believe) as well.

For example, the most relevant instance is:

	case 0x8C10:				/* Savage MX/MV */
	case 0x8C11:				/* Savage MX */
	case 0x8C12:				/* Savage4/IX-MV */
	case 0x8C2E:				/* SuperSavage/IXC16 */
		/*
		 * Experience shows the -1 (according to the manual)
		 * is incorrect.
		 */
		x = width/8 /*-1*/;
		vga->crt[0x91] = x;
		vga->crt[0x91] = x;
		vga->crt[0x90] &= ~0x07;
		vga->crt[0x90] |= (x>>8) & 0x07;

There's the missing set of CR91!

Also in the kernel's /sys/src/9/pc/vgasavage.c you
may have to add a few case statements.  I'll send you
our current virge.c and vgasavage.c under separate
cover just to make sure we're on the same page.

Russ


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-12-17 15:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-12-17 10:16 [9fans] NEC Versa LXi stuartb
2001-12-17 15:00 Russ Cox

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).