On Fri, Feb 25, 2005 at 08:11:45PM -0500, David Dawes wrote:
> On Fri, Feb 25, 2005 at 04:05:43PM -0500, David Dawes wrote:
> >On Fri, Feb 25, 2005 at 07:35:37PM +0100, Nicolas Joly wrote:
>
> >>- The missing 1024x768 mode, that was there with the previous realease
> >> module, seems to be invalidated due to HSync not in default range.
> >> I'm getting a value of 33.8, indeed outside from 28.00-33.00
> >> range.
> >> I'm currently thinking that the new `i830GetModePool()' function
> >> does not give exactly the same results as `VBEGetModePool()'.
> >> I can get this working mode back by increasing the HSync range to
> >> 28.00-34.00 kHz.
> >
> >In the absence of DDC-probed monitor parameters or explicitly specified
> >parameters, it seems that the fallback monitor defaults were not getting
> >set before VBEGetModePool() was called. Thus, modes that should have
> >been excluded were not being excluded. The vesa driver still has this
> >bug. I'll look into fixing VBEGetModePool() to correctly handle this
> >situation, and add warnings to xf86CheckModeForMonitor() for when it is
> >called before monitor parameters are set.
>
> I've committed some changes that fix this.
>
> >This has been resolved in the current i830 driver, which accounts for
> >the change in behaviour that you are seeing. However, in the case of
> >flat panels, the driver can and should set better default monitor
> >parameters, namely parameters that are consistent with a panel sized
> >mode at 60Hz refresh. Most drivers probably still don't handle this
> >correctly. I modified the neomagic driver to do this shortly before the
> >4.4.0 release, and that's a good example of how it can be done.
>
> The changes I've just committed provide an easier way of doing this too.
> You might want to see if you can make use of this in the i830 driver.
I tried to run with the appended patch and got very good results !
The laptop now works at 1024x768 from a config file generated with
`-configure' option, without any modification ...
Index: i830_driver.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v
retrieving revision 1.62
diff -u -r1.62 i830_driver.c
--- i830_driver.c 18 Feb 2005 02:55:08 -0000 1.62
+++ i830_driver.c 28 Feb 2005 15:50:13 -0000
@@ -2643,6 +2643,19 @@
xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
"Maximum space available for video modes: %d kByte\n", memsize);
+ if (!pScrn->monitor->DDC) {
+ int n = pI830->pipe;
+ /*
+ * If the monitor parameters are not specified explicitly, set them
+ * so that 60Hz modes up to the panel size are allowed.
+ */
+ xf86SetMonitorParameters(pScrn, pScrn->monitor,
+ pI830->pipeDisplaySize[n].x2,
+ pI830->pipeDisplaySize[n].y2,
+ 60);
+
+ }
+
/* By now, we should have had some monitor settings, but if not, we
* need to setup some defaults. These are used in common/xf86Modes.c
* so we'll use them here for GetModePool, and that's all.
--
Nicolas Joly
Biological Software and Databanks.
Institut Pasteur, Paris.
_______________________________________________
XFree86 mailing list
[email protected]
http://XFree86.Org/mailman/listinfo/xfree86