Hooray! I'm using an MSI Slim PC (MS-6215) with its integrated i815
connected to a television and I experienced this issue of video playback
incorrectly offset. I applied Matthew's patch to XFree86 4.1.0 and it
worked! Thanks, Matthew.
I noticed that the patch still isn't entered into CVS. Someone please
put it in so that future generations may benefit. Here is the patch
against version 1.68 of i810_driver.c:
--- i810_driver.c Fri May 10 05:50:05 2002
+++ i810_driver.c-patched Mon May 13 20:29:06 2002
@@ -1522,8 +1522,11 @@
}
/* OVRACT Register */
- i810Reg->OverlayActiveStart = mode->CrtcHTotal - 32;
- i810Reg->OverlayActiveEnd = mode->CrtcHDisplay - 32;
+ {
+ unsigned int temp = INREG(0x60000);
+ i810Reg->OverlayActiveStart = (temp>>16) - 31;
+ i810Reg->OverlayActiveEnd = (temp & 0x3ff) - 31;
+ }
/* Turn on interlaced mode if necessary */
Note that I haven't tested this on version 1.68, I tested it on the Red
Hat version of 4.1.0. The original thread discussing this issue starts
here: http://www.xfree86.org/pipermail/xpert/2001-November/013420.html
Christer, I notice in your message below you asked for wish-list items.
I don't know whether this is appropriate or not but I would like some
way to adjust the overscan settings for the TV-out to reduce the width
of the black border around the image. Am I asking the right person?
-Sam
-----Original Message-----
Christer,
I think you have correctly identified the issue. The timings in the
LCD/TV registers don't match the timings that are being used to
calculate the Overlay Active offsets.
Try this.... it should work
unsigned int temp = INREG(0x60000);
i810Reg->OverlayActiveStart = (temp>>16) - 31;
i810Reg->OverlayActiveEnd = (temp & 0x3ff) - 31;
-Matt
-----Original Message-----
From: Christer Palm [mailto:[EMAIL PROTECTED]]
Sent: Friday, January 18, 2002 6:06 PM
To: [EMAIL PROTECTED]
Cc: Sottek, Matthew J
Subject: Re: [Xpert]i815 overlay output revisited
OK, I now understand (I think) why this (and other related things)
doesn't work as I expect...
I now realize that the i815 has a separate set of registers for the
digital out timing. The i810 driver never touches those registers, so
they will be left at the default 800x600 mode programmed by the BIOS at
system initialization. This also explains why I at all get a picture on
the TV regardless of the X11 modeline, even though the driver never
talks to the TV chip, which has puzzled me for a while.
I'm adding this stuff to the driver right now. My goal is to keep the
TV-out chip stuff generic, so that it could be used with other
drivers/TV-out chips as well. Suggestions and wish-list items are
welcome!
--
Christer Palm
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert