Commit Graph

59 Commits

Author SHA1 Message Date
Eric Anholt
988f446fe0 [EDID] Ignore reserved bits in deciding monitor vs detailed timing descriptor.
Even though they're defined to zero by the spec, we've seen an EDID block
where the (empty) ASCII strings were stuffed in a byte early, leading to the
descriptor being considered a detailed timing instead.
2007-09-24 20:26:31 -07:00
Keith Packard
ac979c1651 MakeAtom needs length without trailing NUL. sizeof("string") includes NUL.
I made a mistake in some new code using MakeAtom, passing the size of the
string instead of the length of the string. Figuring there might be other
such mistakes, I reviewed the server code and found four bugs of the same
form.
2007-07-14 12:13:17 -07:00
Adam Jackson
0e1384d831 Delete VDIF support; it was never used anyway. 2007-06-02 16:07:20 -04:00
Adam Jackson
6c8152d6ee Remove old edid_modes.c, it lives in hw/xfree86/modes/ now. 2007-04-26 14:59:04 -04:00
Adam Jackson
5ba4d9eedf Refuse to create tiny modes from EDID detailed timing. 2007-03-28 12:03:19 -04:00
Adam Jackson
2e3cc861f9 Since ddc, i2c, and ramdac are in core now, remove their ModuleData stubs. 2007-03-25 22:01:34 -04:00
Keith Packard
720f302d24 Slow down DDC I2C bus using a RiseFallTime of 20us for old monitors.
This time value makes the bus run slowly enough for even the least reliable
of monitors. Thanks to Pavel Troller for finding the necessary change.
2007-03-17 23:38:53 -07:00
Keith Packard
b5a8a71e64 Remove extra (and wrong) I2C ByteTimeout setting in DDC code.
The DDC code sets the I2C timeouts to VESA standards, except that it had an
extra setting of the ByteTimeout value which was wrong (off by a factor of
50). Removing this should help DDC work on many more monitors. Note that the
Intel driver duplicated these settings, along with the error. Yay for cult
and paste coding.
2007-03-17 23:38:43 -07:00
Keith Packard
f350909d16 Kludge around duplicate code added in hw/xfree86/modes.
Code added in hw/xfree86/modes came from the server-1.3-branch.
Portions of this code had previously been integrated into xf86Mode.c
and edid_modes.c.

To preserve hw/xfree86/modes as much as possible, the duplicate code from
the other files has been disabled; a more careful review would figure out
where that code actually belonged.
2007-02-15 21:50:48 -08:00
Keith Packard
d4eb4d0650 Merge crtc/output-based mode selection code.
This code comes from the intel driver, so there's no history in this tree.

As the crtc/output-based mode selection code uses ddc, the ddc and i2c
modules have been merged into the server. Attempts to load them are safely
ignored now.
2007-02-15 20:36:20 -08:00
Adam Jackson
fb8364bca3 Accept EDID > 1.3 but < 2.0 if we find it, assume it's compatible. 2006-12-10 11:24:05 -05:00
Eric Anholt
f62ac3ec39 Separate DDC mode list creation from MonPtr creation.
This will be used by the intel driver, and likely other RandR 1.2 drivers.
2006-11-28 11:13:43 -08:00
Eric Anholt
fbd0944338 Replace bad mode name-setting code with xf86SetModeDefaultName(). 2006-11-28 11:13:43 -08:00
Eric Anholt
4ad0bde661 Clean up a bunch of long lines and trailing whitespace. 2006-11-28 11:13:43 -08:00
Eric Anholt
05778432dc Move code to get a mode list from EDID data from ddcProperty.c to edid_modes.c. 2006-11-28 11:13:42 -08:00
Eric Anholt
38ecc66cd9 Typo that was missed in testing. 2006-11-28 11:13:42 -08:00
Eric Anholt
16f8f10dc2 Move mode handling helpers from ddcProperty.c to xf86Mode.c. 2006-11-27 16:21:31 -08:00
Eric Anholt
b4b0d901d9 Merge branch 'randr-1.2'
Conflicts:

	dix/events.c
	dix/getevents.c
	hw/xfree86/common/xf86Mode.c
	hw/xfree86/dri/Makefile.am
	hw/xfree86/os-support/drm/xf86drm.c
	hw/xfree86/os-support/xf86drm.h
2006-11-27 15:43:15 -08:00
Keith Packard
2be1ac15ae Remove smashing of CFLAGS from server build.
CFLAGS is a user variable, extracted from the environment at configure time
and settable by the user at build time. We must not override this variable.
2006-09-18 12:11:18 -07:00
Adam Jackson
81ef1b6d60 Mark EDID modes as driver modes. Infer virtual size from driver modes.
This allows the server to guess an appropriate initial virtual size and
resolution.  The heuristic is to select the largest driver-reported mode
that matches the monitor's physical aspect ratio.  We revalidate this
estimate after mode validation, since we may have filtered away all
modes that would fill that size.

Also, the EDID preferred timing is now marked as M_T_PREFERRED as well.
2006-09-14 19:18:58 -04:00
Adam Jackson
71a15a7d57 Publish the raw EDID block as a property on the root window.
This was removed in the patch for bug #5386, but is still useful.
2006-09-14 19:00:10 -04:00
Adam Jackson
72af975f9c Fix up EDID blocks where the max pixclock exceeds the preferred mode clock.
Base EDID only lets you specify the maximum dotclock in tens of MHz, which
is too fuzzy for some monitors.  1600x1200@60 is just over 160MHz, but if
the monitor really can't handle any mode at 170MHz, then 160 is more
correct.  Fix up the EDID block before the driver can see it in this case,
so we don't spuriously reject modes.
2006-09-14 18:56:34 -04:00
Adam Jackson
334f7db9f6 Allow hsync and vsync ranges to be overridden independently again. 2006-09-14 18:46:10 -04:00
Adam Jackson
ced46e1777 Record all standard timings from EDID as modes, instead of just the first five. 2006-09-14 18:41:59 -04:00
Adam Jackson
d89fee68d0 Record the maximum dot clock of the monitor, and filter by it. 2006-09-14 18:41:15 -04:00
Adam Jackson
fa8ef71668 Don't translate monitor gamma to X gamma.
The X gamma is used to set the output ramp of the card.  Setting a 2.2 output
gamma going into a 2.2 monitor gives an effective gamma of 4.84, which is
very much not what you want.
2006-09-14 18:33:00 -04:00
Luc Verhaegen
511c60bc73 Bug #5386: Synthesize modelines from EDID data. 2006-09-14 18:30:36 -04:00
Adam Jackson
63dfaa1d5b Delete internal usage of the symbol ref/req lists. 2006-07-21 18:47:18 -04:00
Adam Jackson
0aaac95b0d Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
Daniel Stone
84683f19b4 get rid of XFree86LOADER, XFree86Server, XFree86Module, and IN_MODULE
Get rid of almost all uses of these definitions.  They're still defined for
delinquent out-of-tree drivers, and also for the Mesa build.  As well as
for miinitext.c.  But largely gone.
2006-07-18 18:17:38 -04:00
Eric Anholt
76aaf7eae7 Add a couple of (doxygen) comments I wrote while looking at modesetting. 2006-06-18 19:47:51 -07:00
Adam Jackson
52fc7c8dc7 Ensure all *ModuleData symbols are marked _X_EXPORT. Start removing
XFree86LOADER ifdefs, non-loadable hasn't been supported for a while
    now. Remove completely gratuitious REMOVE_LOADER_CHECK_MODULE_INFO
    ifdefs surrounding a call to a function added in XFree86 4.1 (!).
    Miscellaneous static markings.
2006-06-05 03:00:24 +00:00
Adam Jackson
fb6f61b50f Bug #4806: Dump the raw EDID contents in hex to the log file for better
debugging. (Philip Prindeville)
2006-04-04 12:36:16 +00:00
Eric Anholt
c3d1403672 Remove libcwrapper usage from xorg server modules. The libcwrapper is only
of (marginal) use in the drivers, and that usage remains.
2006-02-10 22:00:30 +00:00
Luc Verhaegen
f4898b4093 Further bug #5386 fixes: Fix some problems with the EDID code: Some
bitoffsets were wrong. Unknown Detailed Sections weren't handled
    properly and defaulted to Detailed Timing.
2006-01-31 14:49:43 +00:00
Kevin E Martin
7c00afd0ec Define XFree86Server only where it is required. 2005-12-02 06:02:45 +00:00
Kevin E Martin
da5d66f2ff Fix usage of XFree86LOADER/XFree86Module/IN_MODULE and update loadable
module builds to reflect this change.
2005-11-29 16:39:33 +00:00
Adam Jackson
de95d8ee19 Bug #4859: Don't segfault on bad DDC read. (Tony Houghton) 2005-11-18 18:02:24 +00:00
Alan Coopersmith
13e0db19d8 Adding more doc files & fbdevhw man page 2005-10-01 06:19:02 +00:00
Daniel Stone
825a95a1fa Remove use of dix-config and xorg-config.h from public headers. 2005-08-24 11:18:35 +00:00
Adam Jackson
4f9e76ed6a Dear libtool: Loadable modules do not need version numbers. kthnxbye. 2005-07-13 22:09:52 +00:00
Daniel Stone
0bb669638f Change <X11/misc.h> and <X11/os.h> to "misc.h" and "os.h". 2005-07-03 08:53:54 +00:00
Daniel Stone
e03198972c Add Xtrans definitions (FONT_t, TRANS_CLIENT) to clean up warnings.
Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings.
Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all
    source files in the xserver/xorg tree, predicated on defines of
    HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to
    <X11/fonts/foo.h>.
2005-07-03 07:02:09 +00:00
Daniel Stone
826a6f029f Continuing Makefile cleanup; add DIX_CFLAGS and XORG_CFLAGS everywhere. 2005-07-02 18:59:44 +00:00
Daniel Stone
9b1debcdb6 Change all misc.h and os.h references to <X11/foo.h>. 2005-07-01 22:43:43 +00:00
Daniel Stone
ded56b1a74 Adding initial build system. 2005-07-01 20:29:53 +00:00
Daniel Stone
292c4cff26 Fix includes right throughout the Xserver tree:
change "foo.h" to <X11/foo.h> for core headers, e.g. X.h, Xpoll.h;
change "foo.h", "extensions/foo.h" and "X11/foo.h" to
    <X11/extensions/foo.h> for extension headers, e.g. Xv.h;
change "foo.[ch]" to <X11/Xtrans/foo.[ch]> for Xtrans files.
2005-04-20 12:25:48 +00:00
Egbert Eich
b6301dc410 Minor format fix.
Added explanatory comment and debug code.
Added comment.
2005-01-11 14:59:02 +00:00
Egbert Eich
522c878fca Removing unneeded private FreeType2 symbol.
Updating to EDID 1.3. (Bugzilla# 1490, Jay Cotton, Egbert Eich).
Removing unneeded code.
Fixed KGA handling for i810. KGA handling for chips derived from C&T chips
    is slightly different. The changes make the code consistent with the
    C&T (chips) and i740 drivers.
2004-11-02 08:54:53 +00:00
Egbert Eich
7c08707869 - Make DDC code more VESA compliant: when MaxClock is set to 0xFF it means
'no value specified'. Therefore setting it to 0.
2004-08-27 12:32:14 +00:00