Commit Graph

1671 Commits

Author SHA1 Message Date
Adam Jackson
3b73d62791 xf86DDCMonitorSet: Honor the DisplaySize from the config file.
We honor sync ranges and pixel clock settings from the config here, no
reason to ignore DisplaySize.
2008-03-03 15:43:22 -05:00
David Nusinow
f7ab2d3821 Add missing file from previous commit. 2008-03-02 18:36:25 -05:00
David Nusinow
b5ce0e1d0b Bug #13860: Ensure that the DRI mode is in octal format. 2008-03-02 17:12:02 -05:00
Matthieu Herrb
c934366424 use UTILS_SYS_LIBS to pass SYS_LIBS to utils/ioports correctly 2008-03-02 19:32:01 +01:00
George Sapountzis
3d64290547 clean some "unused" warnings 2008-03-01 19:49:24 +02:00
Maarten Maathuis
8af2c39bcc Fix big mistake in commit fd41f46ac6.
- When a mode is deleted, the name pointer is also free()'ed.
- This leaves other modes with an invalid pointer.
2008-03-01 16:54:01 +01:00
Eamon Walsh
ef60632e20 dix: Modify callers of property and selection API to use new interfaces. 2008-02-29 18:01:37 -05:00
Eamon Walsh
34bf308a9e dix: Refactoring of selection code to allow for polyinstantiation.
Introduces dixLookupSelection() API.
Removes NumCurrentSelections from API.
2008-02-29 18:01:37 -05:00
Eamon Walsh
d5715f7bea dix: Refactoring of property code to allow for polyinstantiation.
Introduces dixLookupProperty() API.
2008-02-29 18:01:37 -05:00
Adam Jackson
b7eb92774a EDID 1.4: Print additional CVT support data in the log. 2008-02-29 16:01:15 -05:00
Adam Jackson
31014d88af EDID 1.4: Decode additional CVT support information.
Table 3.28: Display Range Limits & CVT Support Definition
2008-02-29 16:01:15 -05:00
Adam Jackson
d1c48955f8 Fix CVT abuse in DDCModesFromStandardTiming.
CVT is enough different from GTF that it should not be used on monitors
that aren't expecting it.  This brings us closer to what the spec says
the correct behaviour is.
2008-02-29 16:01:15 -05:00
Adam Jackson
26c2e95fa5 Nuke a duplicate SYMFUNC(xf86CVTMode) 2008-02-29 16:01:15 -05:00
Adam Jackson
ca5625b911 Add xf86GTFMode().
This should probably be shared like xf86CVTMode().
2008-02-29 16:01:15 -05:00
Adam Jackson
4cb4817c10 Remove the duplicate copy of xf86cvt.c 2008-02-29 16:01:15 -05:00
Adam Jackson
e65e51a99b Constify the built-in mode tables. 2008-02-29 16:01:14 -05:00
Adam Jackson
6828d8fc2b Clean up DisplayModeRec handling in many places.
Use xf86DuplicateMode() instead of rolling our own, and change
malloc+memset to calloc.
2008-02-29 16:01:14 -05:00
Adam Jackson
85617b56e5 Remove some #if 0 guarding code duplicated in xf86Modes.c 2008-02-29 16:01:14 -05:00
Adam Jackson
fd41f46ac6 Allow xf86DuplicateMode() to work correctly on read-only modes.
Before this it was meaningless to try to mark DisplayModeRec tables
const, since the mode name would be emitted as a pointer to an
anonymous string constant, and therefore would have to be fixed up by
ld.so and so couldn't live in .rodata.  With this change the standard
mode lists can live in .rodata, and modes duplicated from them will
have their names filled in on the fly.
2008-02-29 16:01:14 -05:00
Adam Jackson
8ac19d16a0 Add several comments documenting our EDID failures. 2008-02-29 16:01:14 -05:00
Kristian Høgsberg
13bfa5937d GLX: Adjust to changes in DRI driver interface. 2008-02-29 15:11:13 -05:00
Tiago Vignatti
aebd9dc252 Oops, there's one more parenthesis. 2008-02-28 01:22:31 -03:00
Dave Airlie
08afc70513 quirks: another LPL panel with the cm/mm wrong 2008-02-28 10:45:41 +10:00
Dave Airlie
d12b7b6632 xf86Crtc: add higher level modesetting entry point.
For kernel modesetting work we need a bigger stick to beat the modesetting path
2008-02-27 07:09:14 +10:00
Tiago Vignatti
c46f7b62d2 Fine, we don't need pciInit() anymore. Nuke, nuke, nuke... 2008-02-25 18:14:08 -03:00
Tiago Vignatti
a9050d5424 Jesus, pciInit() was called 32 times in my machine without need!
xf86scanpci() will always call pciInit() before any other function, so
there's no need to guarantee it after.
2008-02-25 18:10:18 -03:00
Tiago Vignatti
81272f7ec9 Some doc clean up:
clean up legacy things in os-support/bus/Pci.c.

    Put InitOutput() comment to its right place.
2008-02-25 17:39:33 -03:00
Tiago Vignatti
7c582dd6de remove lnxPciInit() unused function. 2008-02-25 17:31:37 -03:00
Tiago Vignatti
9727db88d5 No more "-scanpci" given that we already have it in libpciaccess.
(Yeah, lets nuke dead code!)
2008-02-25 17:08:07 -03:00
Tiago Vignatti
f19f7b8e53 Clean some garbage caused when pciaccess was merged:
FindPCIVideoInfo() function isn't need anymore.

    xf86scanpci() is being called only once so we don't need permanent
    (static) variables there.

    restorePciState() is not used for now (until we find why multiple
    cards aren't working).
2008-02-25 17:07:07 -03:00
Adam Jackson
4b50e71bf1 Bug #13736: Fix %bx in VBEGetPixelClock to match spec.
Reported by Yannick Henault.
2008-02-24 20:25:13 -05:00
Adam Jackson
e6a4cde16d Use the client-side XKB headers for the config utilities 2008-02-22 18:36:29 -05:00
Adam Jackson
347db49ebe s/via/openchrome/ in the autoconfig logic.
Xorg's via driver is effectively dead anyway.
2008-02-22 16:05:33 -05:00
Adam Jackson
ee21aba6be Fix Xinerama's consolidated visual handling.
Formerly the code claimed it could only handle up to 256 visuals, which
was true.  Also true, but not explicitly stated, was that it could only
handle visuals with VID < 256.  If you have enough screens, and subsystems
that add lots of visuals, you can easily run off the end.  (Made worse
because we allocate visual IDs from the same pool as XIDs.)  If your app
then chooses a visual > 256, then the Xinerama code would throw BadMatch
on CreateColormap and your app wouldn't start.

With this change, PanoramiXVisualTable is gone.  Other subsystems that
were using it as a translation table between each screen's visuals now
use a PanoramiXTranslateVisual() helper.
2008-02-22 15:19:54 -05:00
Peter Hutterer
67a78e84a8 Revert "xfree86: plug a memory leak in xf86LoadModules."
This reverts commit 3abce3ea2b and
6cbaf15e61.

The memory returned to xf86LoadModule was allocated in doLoadModule, which
calls the respective module's PreInit. As it turns out, input and output
drivers store a pointer to the module elswhere, so freeing it in
xf86LoadModule is a bad idea.

For further reference: hw/xfree86/common/xf86Helper.c
    Input drivers: xf86InputDriverList[blah]->module = module;
    Output drivers: xf86DriverList[blah]->module = module;

Unloading the module would not look pretty then.
2008-02-19 21:31:50 +10:30
Peter Hutterer
74628d6397 dix: change GetEventList to return length of list and set parameter in place.
Changing DDXs to use new prototype too.
2008-02-19 16:53:15 +10:30
Peter Hutterer
6cbaf15e61 xfree86: guard against NULL-pointer dereferences in xf86LoadModules.
Should have been part of 3abce3ea2b, but I
forgot to git-update-index before I committed.

Thanks to Bill Crawford for pointing it out.
2008-02-19 12:05:13 +10:30
Peter Hutterer
3fe64d8d27 Move input event list initialisation and storage from DDX to DIX.
Rather than letting the DDX allocate the events, allocate them once in the DIX
and just pass it around when needed.

DDX should call GetEventList() to obtain this list and then pass it into
Get{Pointer|Keyboard}Events.
2008-02-18 18:46:01 +10:30
Arjan van de Ven
3abce3ea2b xfree86: plug a memory leak in xf86LoadModules.
LoadModule() returns the only reference to a fresh piece of memory (a
ModuleDescPtr). Sadly, xf86LoadModules dropped the return value on the floor
leaking memory for each module it loaded.

Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
2008-02-18 18:14:40 +10:30
Arjan van de Ven
6dc71f6b2c xfree86: plug memory leak in InitPathList.
All the failure paths were very diligent in freeing the "fullpath" temporary
string, but the success case was not. All the content only got strdup()d, so
it's not live memory anymore.

Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
2008-02-18 18:14:33 +10:30
Arjan van de Ven
1bec6ad897 xfree86: plug memory leak in xf86LogInit()
xf86LogInit allocates a piece of memory, stores it in lf. LogInit() will then
effectively strdup it, but lf is never freed again.

Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
2008-02-18 18:14:20 +10:30
Daniel Stone
68bd7ac193 XKB: Move headers into the server tree
We need to start breaking the XKB API to enforce sanity, so drag whichever
headers we need to do so into the server tree, as the client API is set in
stone, being part of Xlib.
2008-02-17 22:52:07 +02:00
Maarten Maathuis
a48cc88ea2 Fix rotation for multi-monitor situation.
- The (x,y)-coordinates of the crtc were not being passed as xFixed values, which made it an obscure bug to find.
- Fix bug #13787.
2008-02-17 18:47:28 +01:00
Kristian Høgsberg
0ffb6a3ad0 GLX: Implement support for TTM BO based TFP when available. 2008-02-14 22:20:56 -05:00
Kristian Høgsberg
879515b139 Add GLX provider for DRI2. 2008-02-14 19:53:49 -05:00
Kristian Høgsberg
b71dc54352 Add DRI2 module. 2008-02-14 19:53:49 -05:00
Adam Jackson
3e0353c785 Bah, macros are hard. 2008-02-15 06:42:48 +11:00
Maarten Maathuis
c38feeb149 Fix typo in commit b8b7cdf6df. 2008-02-14 18:52:47 +01:00
Adam Jackson
b8b7cdf6df Silence useless debug spew from XFree86-Misc extension. 2008-02-15 01:31:46 +11:00
Adam Jackson
ba69904148 Simplify dlloader a bit more. 2008-02-14 08:52:43 +11:00
Adam Jackson
f750ce53ac Remove some braindamage from ModuleDesc.
Yay dead code elimination.
2008-02-14 08:22:57 +11:00
Adam Jackson
e91ff09568 Friends don't let friends call xf86AddModuleInfo.
That code only existed to leak memory.  It can go now, thanks.
2008-02-14 08:21:44 +11:00
Adam Jackson
0bdd20a045 Eradicate the VTInit code.
"This option should rarely be used."  Never sounds like a better idea.
2008-02-14 07:52:46 +11:00
Adam Jackson
24089b0624 Don't bother warning people about the keyboard driver rename, just do it. 2008-02-14 07:52:33 +11:00
Adam Jackson
2aaf6ac134 Don't even attempt to parse -bpp in xfree86 DDX option parsing.
This hasn't been valid since 1999.  Get with the times, man.
2008-02-14 07:52:26 +11:00
Adam Jackson
f3b3b37ec6 Use strerror instead of errno values in user strings. 2008-02-14 07:52:02 +11:00
Bart Trojanowski
66f8001b61 X86EMU: handle CPUID instruction
After trying to switch from X to VT (or just quit) the video-amd driver
attempts to issue INT 10/0 to go to mode 3 (VGA).  The emulator, running
the BIOS code, would then spit out:

        c000:0282: A2 ILLEGAL EXTENDED X86 OPCODE!

The opcode was 0F A2, or CPUID; it was not implemented in the emulator.
This simple patch, against 1.3.0.0, handles the CPUID instruction in one of
two ways:
 1) if ran on __i386__ or __x86_64__ then it calls the CPUID instruction
     directly.
 2) if ran elsewhere it returns a canned 486dx4 set of values for
     function 1.

This fix allows the video-amd driver to switch back to console mode,
with the GSW BIOS.

Thanks to Symbio Technologies for funding my work, and ThinCan for
providing hardware :)

Signed-off-by: Bart Trojanowski <bart@jukie.net>
Acked-by: Eric Anholt <eric@anholt.net>
2008-02-08 10:48:40 -08:00
liuhong
d3c36fe721 validate mode clock for probed modes
Some modes claimed in monitor EDID data may not be supported by
the monitor. So also validating the max clock for probed modes.
2008-02-05 12:45:27 -08:00
liuhong
4b5b6e7baa fix max clock unit
max clock from EDID data is in MHz, while we need KHz to validate modes.
2008-02-05 12:45:16 -08:00
Peter Hutterer
10617dc0fb xfree86: stick two more checks in for num_valuators < MAX_VALUATORS 2008-02-01 14:24:04 +10:30
Matthieu Herrb
c68f063be6 xfree86: don't call xalloc from signal handlers when posting events.
Reviewed-by: Peter Hutterer <peter@cs.unisa.edu.au>
2008-02-01 14:14:17 +10:30
Peter Hutterer
e5e531ce96 Merge branch 'master' into mpx
Conflicts:

	dix/events.c
2008-01-31 16:36:17 +10:30
Coleman Kane
df325be394 Bug 13101: xorg-server has a typo in hw/xfree86/os-support/bsd/i386_video.c
X.Org Bug #13101 <https://bugs.freedesktop.org/show_bug.cgi?id=13101>
Patch #12360 <https://bugs.freedesktop.org/attachment.cgi?id=12360>
2008-01-29 09:48:00 -08:00
Julien Goodwin
94f412cb7e Loader: Fix verbosity confusion
'Loading foo' is verbosity 3, whereas 'already built-in' is verbosity 0.
This means that gdm's log would just be full of bare 'module already
built-in' messages.
2008-01-29 14:46:15 +11:00
Julien Goodwin
442838fcb3 xorg.conf.man: Fix monitor/output confusion in monitor positioning
On the Intel driver at least, LeftOf/RightOf/Above/Below in xorg.conf refers
to output names, not monitor names.  Fix nomenclature in xorg.conf.man.
2008-01-29 14:46:15 +11:00
Peter Hutterer
5b8641a5fd xfree86: fix AlwaysCore handling. (Bug #14256)
Assume AlwaysCore being set by default, just like the other options.

X.Org Bug 14256 <http://bugs.freedesktop.org/show_bug.cgi?id=14256>
2008-01-29 10:01:42 +10:30
Peter Hutterer
0ac1755977 Merge branch 'master' into mpx
Conflicts:

	Xext/sampleEVI.c
2008-01-26 13:55:07 +10:30
Eamon Walsh
e915a26397 xselinux: Move the extension to extmod instead of being built-in. 2008-01-25 19:22:19 -05:00
Eamon Walsh
f6a78ee143 XACE: Remove the extension code entirely, XACE is completely static now. 2008-01-25 18:04:10 -05:00
Hong Liu
734e115871 Bug #12439: add a quirk to use +hsync +vsync for the probed detailed mode.
Samsung 205BW quirk is somehow reworked.
2008-01-23 21:24:09 +08:00
Adam Jackson
cc22b05ea0 There is no such thing as /dev/cpu/mtrr. 2008-01-22 18:57:11 -05:00
Peter Hutterer
ba315ae5dd Xi: add XACE hooks for device creation (ChangeDeviceHierarchy)
AddInputDevice checks for permissions already, so all we do is modify a few
callers to let AID sort it out.
2008-01-21 23:44:07 +10:30
Peter Hutterer
883811c2be dix: remove inputInfo.pointer reference in TryClientEvents.
Unfortunately, this requires a change in the TCE API, and thus a change in all
callers. Tough luck.
2008-01-18 18:48:46 +10:30
Matthieu Herrb
bbde5b62a1 Fix for CVE-2007-5760 - XFree86 Misc extension out of bounds array index 2008-01-17 15:26:41 +01:00
Dave Airlie
1f83f40525 xf86Cursors: fix memset for non-square cursors 2008-01-15 10:21:17 +10:00
Peter Hutterer
38bf01bd1c Merge branch 'master' into mpx 2008-01-10 13:38:46 +10:30
Peter Harris
0883e838e2 xf86misc.c: Avoid use of swapped values 2008-01-09 18:43:55 -08:00
Alan Coopersmith
59a63d72a1 Fix reference to old versions of XFree86 to not say "Xorg 4.2 or earlier" 2008-01-09 18:42:58 -08:00
David Nusinow
30375cd6d1 Don't log DPMS enabling as being from xorg.conf if it's not 2008-01-07 20:57:30 -05:00
David Nusinow
260505e3c5 Log enabling of DPMS even when it's not set in xorg.conf 2008-01-06 16:37:13 -05:00
Julien Cristau
7e76221659 Fix the name of the XFree86-Misc extension in the xorg.conf manpage. 2008-01-06 18:23:09 +01:00
Julien Cristau
59df687835 Document the AllowEmptyInput, AutoAddDevices and AutoEnableDevices flags
Add documentation for the new AllowEmptyInput, AutoAddDevices and
AutoEnableDevices server flags in the xorg.conf manpage.
2008-01-06 17:02:03 +01:00
Alex Deucher
20eb26f9d1 Fix potential crasher in xf86CrtcRotate()
xf86CrtcRotate() is called by randr 1.2 drivers via xf86CrtcSetMode() or xf86SetDesiredModes()
during ScreenInit() at which point pScrn->pScreen is not set. If a user specifies a rotation
in their config file pScrn->pScreen is dereferenced and boom.
2008-01-03 22:53:36 -05:00
Peter Hutterer
8da83836b6 Merge branch 'master' into mpx
Conflicts:

	XTrap/xtrapddmi.c
	Xext/security.c
	Xext/xprint.c
	Xext/xtest.c
	Xext/xvdisp.c
	Xi/exevents.c
	Xi/grabdevb.c
	Xi/grabdevk.c
	Xi/opendev.c
	Xi/ungrdev.c
	Xi/ungrdevb.c
	Xi/ungrdevk.c
	dix/cursor.c
	dix/devices.c
	dix/dixutils.c
	dix/events.c
	dix/getevents.c
	dix/main.c
	dix/window.c
	hw/xfree86/ramdac/xf86Cursor.c
	include/dix.h
	include/input.h
	include/inputstr.h
	mi/midispcur.c
	mi/miinitext.c
	mi/misprite.c
	render/animcur.c
	xfixes/cursor.c
	xkb/xkbAccessX.c
2008-01-03 17:04:54 +10:30
Alan Coopersmith
ccf6636d2c Kill xf86getpagesize even harder (dummylib & ioport) 2008-01-02 19:28:33 -08:00
Alan Coopersmith
f6666dcc3b Add dixAllocatePrivate stub to dummylib for utils
Normally not necessary, except when building non-optimized/debug causes
the inline functions from private.h to appear in os-support/libxorgos.la
2008-01-02 19:19:55 -08:00
Alan Coopersmith
73f4229960 Fix names/types of new vuidMouse{Get,Set}ScreenPrivates macros 2008-01-02 19:17:54 -08:00
Adam Jackson
85365ddf16 EDID 1.4: If given a native pixel format, use it when inferring virtual. 2007-12-28 17:38:52 -05:00
Adam Jackson
312b30cb03 EDID 1.4: First detailed mode is always preferred.
... so act like it in the modelist generator, not just the parser.
2007-12-28 17:38:51 -05:00
Adam Jackson
bae459cfc4 Don't carp on EDID 1.4 blocks anymore.
Also whine more loudly when we get something other than 1.x.
2007-12-28 16:53:17 -05:00
Adam Jackson
70b2d6cfeb Check the gamma value, not its address. 2007-12-28 16:53:17 -05:00
Adam Jackson
592d814ee0 EDID 1.4: Additional semantics for display feature bits.
First mode is _always_ preferred in 1.4; the bit that used to mean this
now means that the preferred mode is also the native pixel format.  The
old "is GTF" bit now means "is continuous-frequency" instead.

Section 3.6.4, Table 3.14: Feature Support, Notes 4 and 5.
2007-12-28 16:53:17 -05:00
Adam Jackson
322d0103ae EDID 1.4: Alternate color encodings for digital inputs.
Section 3.6.4, Table 3.14: Feature support.
2007-12-28 16:53:17 -05:00
Adam Jackson
f1f43caf7e EDID 1.4: Allow for gamma definition in extension blocks.
Section 3.6.3, Table 3.13: Display Transfer Characteristics (Gamma)
2007-12-28 16:53:16 -05:00
Adam Jackson
861ee38817 EDID 1.4: Additional aspect ratio semantics for screen size fields.
Section 3.6.2, Table 3.12: Horizontal and Vertical Screen Size or
Aspect Ratio.
2007-12-28 16:53:16 -05:00
Adam Jackson
14b5c8a447 EDID 1.4: Extended support for digital interfaces.
Section 3.6.1, Table 3.11: Video Input Definition.
2007-12-28 16:53:16 -05:00
Adam Jackson
a948216dcc EDID 1.4: Decode CVT 3-byte codes and add them to the mode pool.
Section 3.10.3.8: CVT 3 Byte Code Descriptor Definition.
2007-12-28 16:53:16 -05:00
Adam Jackson
f6df66cc89 EDID 1.4: Trivial support for new detailed sections.
Nothing actually decoded yet, but at least we print what they are.

New in EDID 1.4:
- Color Management Data (0xF9), Section 3.10.3.7
- CVT 3 Byte Code Descriptor (0xF8), Section 3.10.3.8
- Established Timings III Descriptor (0xF7), section 3.10.3.9
- Manufacturer-specified data tag (0x00 - 0x0F), section 3.10.3.12
2007-12-28 16:53:16 -05:00
Adam Jackson
bac3ecde39 EDID 1.4: Allow for sync range offsets.
Table 3.26: Display Range Limits & Timing Descriptor Block Definition
2007-12-28 16:53:16 -05:00
Eamon Walsh
643c52be32 xselinux: Remove "X" prefix on remaining functions and strings.
Should be evident from the context.
2007-12-28 13:27:28 -05:00