VT switching on a linuxPPC with an NVIDIA GeForce2MX card running
Xorg-6.8.2 or Xfree86-4.5 is broken.
Attached is a patch to fix the problem.
Discussion
-------------
The resolution of the VT switching problem was a collaboration with
Mark Vojkovich <[EMAIL PROTECTED]>
Observations:
* the nv driver for Xorg and Xfree86 are very similar.
* Mark is a maintainer of the nv driver code [among many other things]
for the XFree86.org and knows the nv code well [:-)].
* VT switching used to work for earlier versions of X, in particular
Xfree86-4.4.
Approach:
Identify the root cause using bisection.
I proposed using bisection on the time-line of the CVS code for the
Xfree86 version of the nv driver to identify a point on the time-line
when VT switching first stopped working.
The CVS command,
cvs -D "DATE_SPEC" update
was used to pull down nv driver code from the XFree86.org CVS repository
with the most recent version of any file no later than DATE_SPEC.
After several iterations, a point on the time-line was identified when
VT switching first failed. Mark was then able to compare the errant
code with working code from an earlier point on the time-line, deduce
the cause of the problem and construct a solution.
-Joseph
--
joseph_sacco [at] comcast [dot] net
--- nv_dac.c- 2005-07-08 14:45:03.000000000 -0400
+++ nv_dac.c 2005-07-08 14:46:28.000000000 -0400
@@ -310,7 +310,7 @@
/* can't read this reliably on NV11 */
if((pNv->Chipset & 0x0ff0) == 0x0110)
- nvReg->crtcOwner = ((pNv->Chipset & 0x0fff) == 0x0112) ? 3 : 0;
+ nvReg->crtcOwner = pNv->CRTCnumber;
}
#define DEPTH_SHIFT(val, w) ((val << (8 - w)) | (val >> ((w << 1) - 8)))
_______________________________________________
yellowdog-general mailing list
[email protected]
http://lists.terrasoftsolutions.com/mailman/listinfo/yellowdog-general
HINT: to Google archives, try '<keywords> site:terrasoftsolutions.com'