Return to BSD News archive
Received: by minnie.vk1xwt.ampr.org with NNTP id AA2213 ; Mon, 01 Mar 93 10:49:36 EST Xref: sserve comp.windows.x.i386unix:656 comp.unix.pc-clone.32bit:1645 comp.unix.bsd:11540 comp.os.linux:27520 Newsgroups: comp.windows.x.i386unix,comp.unix.pc-clone.32bit,comp.unix.bsd,comp.os.linux Path: sserve!manuel.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!pacbell.com!att-out!cbnewsj!dwex From: dwex@cbnewsj.cb.att.com (david.e.wexelblat) Subject: Fix for XFree86 interlace problem on Trident cards Organization: AT&T Date: Thu, 25 Feb 1993 16:58:26 GMT Message-ID: <1993Feb25.165826.1427@cbnewsj.cb.att.com> Followup-To: comp.windows.x.i386unix Lines: 66 We have found a fix for the problems with using XFree86 in interlaced mode on Trident cards. Sorry about the bugs; we did not test interlaced modes when developing the Trident driver. Attached below is a patch for XFree86 1.2 to fix the problem. If you use this patch, SAVE THE ORIGINAL. This will be part of the next upgrade, so you'll need to back out the change. We are still trying to figure out what to do for binary users; we will likely put new drivers on the binary archives. You can then rebuild the server from the link kit. Stay tuned. -- David Wexelblat <dwex@mtgzfs3.att.com> (908) 957-5871 AT&T Bell Laboratories, 200 Laurel Ave - 3F-428, Middletown, NJ 07748 "In and around the lake, mountains come out of the sky. They stand there." -- Yes, Roundabout ------------------------------------------------------------------------------ *** mit/server/ddx/x386/vga256/drivers/tvga8900/driver.c:1.22 Sun Feb 21 15:55:38 1993 --- mit/server/ddx/x386/vga256/drivers/tvga8900/driver.c Sun Feb 21 15:55:38 1993 *************** *** 1,4 **** /* ! * $Header: /home/x_cvs/mit/server/ddx/x386/vga256/drivers/tvga8900/driver.c,v 1.22 1993/02/07 07:26:32 dawes Exp $ * Copyright 1992 by Alan Hourihane, Wigan, England. * --- 1,4 ---- /* ! * $Header: /home/x_cvs/mit/server/ddx/x386/vga256/drivers/tvga8900/driver.c,v 1.23 1993/02/14 01:49:28 dawes Exp $ * Copyright 1992 by Alan Hourihane, Wigan, England. * *************** *** 500,503 **** --- 500,514 ---- DisplayModePtr mode; { + /* + * In an interlaced mode, vertical numbers should be divided in + * half! + */ + if (mode->Flags & V_INTERLACE) { + mode->VDisplay >>= 1; + mode->VSyncStart >>= 1; + mode->VSyncEnd >>= 1; + mode->VTotal >>= 1; + } + #ifndef MONOVGA if ( TVGAchipset == TVGA9000 ) { *************** *** 537,540 **** --- 548,561 ---- new->std.CRTC[23] = 0xA3; #endif + /* + * In an interlaced mode, vertical numbers should be divided in + * half! Now put them back, so the cursor tracking works. + */ + if (mode->Flags & V_INTERLACE) { + mode->VDisplay <<= 1; + mode->VSyncStart <<= 1; + mode->VSyncEnd <<= 1; + mode->VTotal <<= 1; + } new->CRTCModuleTest = (mode->Flags & V_INTERLACE ? 0x84 : 0x80); -----------------------------------------------------------------------------