Commit Graph

1081 Commits

Author SHA1 Message Date
Adam Jackson d322608dc9 Fix a buffer overrun on machines with excessively large PCI busses.
Formerly we sized an array with a compile time constant, then initialized
its size to the same constant, but the Linux PCI init code would increase
that "constant".  So if you happened to have more than 128 PCI devices,
you'd happily scribble into whatever variables happened to be in .bss
after that array.

Only really fixed for Linux atm.  Other OSes will simply (still) fail to
work on video devices above the 128th PCI device.
2007-04-25 16:29:48 -04:00
Aaron Plattner 3ba1e8ab6d Include xf86Rename.h in xf86RandR12.h. 2007-04-24 17:20:14 -07:00
Peter Hutterer 09436fb7c3 Disable devices before removing, remove unrecoverable devices. 2007-04-24 23:11:44 +09:30
Peter Hutterer c7e2ba0c9b Use DevicePresence events to tell the client about enabled/disabled devices.
Include the device id in the event sent to the client.
2007-04-24 23:11:44 +09:30
Aaron Plattner 38d14e8589 Adjust the screen pixmap's dimensions in xf86RandR12ScreenSetSize. 2007-04-22 18:04:27 -07:00
Aaron Plattner 39bc8bb0fd Don't call xf86RandR12TellChanged if it doesn't exist. Add some exports to xf86Rename.h. 2007-04-20 14:23:38 -07:00
Keith Packard 96ef0f7843 Disable SourceValidate in rotation to capture cursor.
SourceValidate is used exclusively by the software cursor code to pull the
cursor off of the screen before using the screen as a source operand. This
eliminates the software cursor from the frame buffer while painting the
rotated image though. Disabling this function by temporarily setting the
screen function pointer to NULL causes the cursor image to be captured.
(cherry picked from commit 05e1c45ade9c558820685bfd2541617a2e8de816)
2007-04-19 17:49:55 -07:00
Keith Packard 7ca4baffb5 Was accidentally disabling rotation updates in mode set.
Setting a mode on an unrotated CRTC was causing all of the rotation updates
to be disabled; the loop looking for active rotation wasn't actually looking
at each crtc, it was looking at the modified crtc many times.
(cherry picked from commit 8b217dee3a6c46b13fc9571a4a9a95bc55686cdb)
2007-04-19 17:49:48 -07:00
Keith Packard 806a537e64 Revert "Suppress software cursor removal during rotated shadow buffer drawing."
This reverts commit 999b681cf3.
Replacing this with simpler code that just disables SourceValidate
during rotation redisplay.
2007-04-19 17:49:34 -07:00
Thomas Hellstrom d0e55774e0 libdri: Make sure the new DRIInfo keepFDOpen member is honoured. 2007-04-19 11:50:06 +02:00
Eric Anholt 999b681cf3 Suppress software cursor removal during rotated shadow buffer drawing. 2007-04-18 14:33:27 -07:00
Erik Andrén 53fb42e65c Syncmaster 226 monitor needs 60Hz refresh (#10545).
I've managed to solve my own bug (#10545) by applying the following
patch to the xserver.

Please apply.

<Conspiracy mode on>
This monitor is "Vista Certified". I wonder if this is a pure coincidence...
<Conspiracy mode off>

With kind regards
Erik Andrén
(cherry picked from commit a63704f14a1d97b9a00fef6fa290e74e51b9732b)
2007-04-17 21:38:10 -07:00
Keith Packard fc162c6cfa Allow outputs to be explicitly enabled in config, overriding detect.
Option "Enable" "True" will force the server to enable an output at startup
time, even if the output is not connected. This also causes the default
modes to be added for this output, allowing even sync ranges to be used to
pick out standard modes.
(cherry picked from commit a3d73ba2cb7e13a6d129cd88d6a7f7d756e2ced2)
2007-04-16 11:52:59 -07:00
Keith Packard c41e3bd713 Use default screen monitor for one of the outputs.
By default, use the screen monitor section for output 0, however, a driver
can change which output gets the screen monitor by calling
xf86OutputUseScreenMonitor.
(cherry picked from commit f4a8e54caf6b9431711383a39f55a18e7fd654f4)
2007-04-16 11:52:58 -07:00
Keith Packard 97a2c2579c Using wrong log level in extension to built-in message
was: typo in built-in module log message
(cherry picked from commit 00cfd1f765895b4d1b2234f3203727a8871b64b0)
2007-04-16 11:52:58 -07:00
Thomas Hellstrom 02d42f344c Changes for single-entity multi-screen DRI.
The entity (device) has a locking SAREA and a master file descriptor
that optionally isn't closed between server generation.

The locking SAREA contains the device hardware lock.
Each DRI screen creates an new SAREA containing the drawable lock,
drawable-and private info, the drawable SAREA.

The first screen optionally shares its drawable SAREA with the
device SAREA.

Default is to close the master descriptor between server generations,
and to share the drawable SAREA of the first screen with the device locking
SAREA. Thus we should (hopefully) have full backwards compatibility.

Mesa changes to support single-device multiple screens are pending.
2007-04-16 17:31:40 +02:00
Keith Packard cc4eb1c7ea Add quirk for Acer AL1706 monitor to force 60hz refresh.
This Acer monitor reports support for 75hz refresh via EDID, and yet when
that rate is delivered, the monitor does not sync and reports out of range.
Use the existing 60hz quirk for this monitor.
(cherry picked from commit 1328a288e9030a472a915077160f090d1afd4126)
2007-04-16 08:11:30 -03:00
Daniel Stone 33a5d9605e XFree86: DGA: Don't call ProcessInputEvents from CloseScreen
By the time CloseScreen gets called, we can't call ProcessInputEvents, as
the event queue will get unhappy.  So just unregister our hooks instantly,
and hope that they don't get called.
2007-04-11 18:28:57 +03:00
Remigiusz Marcinkiewicz aecbc71214 Input: Allow a pointer to a device to be returned in NIDR
Allow a pointer to the first device added to be returned, so we know which
device(s) were added by the NIDR call.
2007-04-11 00:38:16 +03:00
Magnus Vigerlöf 82962bbae2 Input: Add DeleteInputDeviceRequest
Add DIDR, which asks the DDX to remove a device, analogous to
NewInputDeviceRequest.  Only implemented for XFree86 at the moment.
2007-04-10 23:58:20 +03:00
Magnus Vigerlöf 7b82a836c6 XFree86: Fix memory leaks, option parsing, in NewInputDeviceRequest
Plugged some possible memory leaks, and added some more checks on the
options, particular for driver/identifier.  Added an unwind.
2007-04-10 23:58:20 +03:00
Magnus Vigerlöf 4771fa8747 XFree86: Fix memory leak in option parsing
Fix option parsing functions and callers thereof to not leak memory.
2007-04-10 23:58:20 +03:00
Jared D. McNeill 4aae2de74b Add a real xf86EnableIO/xf86DisableIO for NetBSD/PPC. 2007-04-10 12:57:15 -07:00
Keith Packard bcf17df69a Disable CRTC when SetSingleMode has no matching mode. Update RandR as well.
xf86SetSingleMode tries to resize all crtcs to match the selected mode. When
a CRTC has no matching mode, it now disables the CRTC (instead of crashing).

Also, poke the RandR extension when xf86SetSingleMode is done so that
appropriate events can be delivered, and so that future RandR queries return
correct information.
(cherry picked from commit dc6c4f6989f87149d8605604f4514f5cbf11de67)
2007-04-10 12:36:45 -07:00
Adam Jackson 67e1c98895 Look for the PCI ROM file elsewhere in sysfs.
/sys/devices reflects the bus topology, and we don't care that much.
Easier (and more reliable) to just look in /sys/bus/pci/devices, which
is a flat view.
2007-04-09 19:08:52 -04:00
Adam Jackson a08d5157f7 VT activate or waitactive are fatal if they fail.
Also, be sure to waitactive on the way down, to make sure we're off the VT
before exiting.
2007-04-09 19:04:56 -04:00
Adam Jackson 72b477f964 Don't write out empty sections from the parser. 2007-04-09 18:59:01 -04:00
Daniel Stone 4beeab8424 XFree86: Treat evdev and vmmouse as mouse drivers (bug #10512, #10559)
When we see an evdev or vmmouse section, assume that it's a mouse, and
don't add a default mouse device.  This will break users who have an
evdev keyboard section but no mouse, and want the mouse to get added
by default.
2007-04-08 13:39:06 +03:00
Brian a240c039c4 Split the xserver/fb/fbcmap.c file into two files.
Now, fbcmap_mi.c contains the fb functions which just wrap mi functions.
Previously, these were in fbcmap.c and compiled when XFree86Server was defined.
Now, clients of fbcmap should either use fbcmap.c or fbcmap_mi.c and not worry
about setting the XFree86Server symbol.
2007-04-03 09:28:21 -06:00
Keith Packard a39f297ada Don't erase current crtc for outputs on CloseScreen
Erasing this variable causes some outputs (SDVO on intel) to fail
to be correctly reset at server reset time.
(cherry picked from commit 56262a4ee943f328d089a8eb4aa70b9a4bd5d135)
2007-04-02 19:12:44 -07:00
Eric Anholt 11797ffdcc Move modes/ debugging output under Option "ModeDebug" in the Device section. 2007-04-02 18:21:58 -07:00
Aaron Plattner 5257b32e49 Bump video driver ABI to 2.0 for cw change (commit 6ed08949af). 2007-03-30 17:07:44 -07:00
Adam Jackson 82a8b99a6c Move the XAA private indices to be static.
Technically this is an ABI break, if you aren't smart enough to be using the
getter functions.  Cope.
2007-03-28 15:17:02 -04:00
Adam Jackson 5ba4d9eedf Refuse to create tiny modes from EDID detailed timing. 2007-03-28 12:03:19 -04:00
Eric Anholt 6ed08949af Move libcw setup to the only renderer requiring it (XAA).
Additionally, protect libcw setup behind checks for Render, to avoid
segfaulting if Render isn't available (xnest).

The previous setup was an ABI-preserving dance, which is better nuked now.
Now, anything that needs libcw must explicitly initialize it, and
miDisableCompositeWrapper (previously only called by EXA and presumably binary
drivers) is gone.
2007-03-27 17:31:28 -07:00
Dave Airlie d387a3ddf7 fix loading of GLcore after recent loading changes 2007-03-27 11:00:13 +10:00
Eric Anholt 92ba435bd9 Update xorg.conf manpage for new RandR 1.2 monitor options. 2007-03-26 12:44:58 -07: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
Adam Jackson 62224e3972 Static cleanup for xf86 ddx. 2007-03-25 17:55:15 -04:00
Adam Jackson e8bc1988d9 Un-staticise VTSwitchEnabled, since kbd wants it apparently. 2007-03-25 15:13:05 -04:00
Adam Jackson f36bf1a3e4 Delete a dead file. 2007-03-25 12:28:13 -04:00
Adam Jackson 9a0f25de7c Static cleanups, dead code deletion. 2007-03-25 12:27:01 -04:00
Dave Airlie 1072b88a8f loader: fix already built-in message 2007-03-25 10:06:00 +10:00
Keith Packard 804080a709 Make pending properties force mode set. And, remove AttachScreen calls.
Yes, two changes in one commit. Sorry 'bout that.

The first change ensures that when pending property values have been
changed, a mode set to the current mode will actually do something, rather
than being identified as a no-op. In addition, the driver no longer needs to
manage the migration of pending to current values, that is handled both
within the xf86 mode setting code (to deal with non-RandR changes) as well
as within the RandR extension itself.

The second change eliminates the two-call Create/AttachScreen stuff that was
done in a failed attempt to create RandR resources before the screen
structures were allocated. Merging these back into the Create function is
cleaner.
(cherry picked from commit 57e87e0d006cbf1f5b175fe02eeb981f741d92f0)

Conflicts:

	randr/randrstr.h
	randr/rrcrtc.c

I think master and server-1.3-branch are more in sync now.
2007-03-24 00:01:47 -07:00
Keith Packard 1f77120775 Ensure that crtc desired values track most recent mode.
desiredX and desiredY were not recorded during xf86InitialConfiguration.
desiredX, desiredY and desiredRotation were not recorded during
xf86SetSingleMode.
(cherry picked from commit 36e5227215e0912ddf8a010db042467f00efe0fc)
2007-03-23 23:44:34 -07:00
Keith Packard 7093367c39 Fix Pending property API, adding RRPostPendingProperty.
Pending Properties take effect when the driver says they do, so provide an
API to tell DIX when a property effect is made. Also, allow driver
to reject property values in RRChangeOutputProperty.
(cherry picked from commit 8eb288fbd69e2ffd02521d2c6a964c8180d08ec8)
2007-03-23 01:32:34 -07:00
Keith Packard 510eaa346e Clean up xf86CrtcRec and xf86OutputRec objects at CloseScreen.
Erase pointers to structures which are freed at server reset time.
(cherry picked from commit 492c768065f49306a2194a88edf96b85de0ff4ff)
2007-03-23 01:30:24 -07:00
Keith Packard b63e0d2545 Clean up Rotate state on server reset.
The rotation state is stored in the xf86_config structure which is not
re-initialized at server reset time. Clean it up at CloseScreen time.
(cherry picked from commit f8db7665dcd7af78ca4db2461e0bf787ec662cb1)
2007-03-23 01:30:00 -07:00
Daniel Stone 3e9f7a5504 XFree86 DGA: Guard against NULL pointer dereferences.
Ass, u, me ...
2007-03-21 02:35:31 +02:00
Adam Jackson 021fc5cb2c Static markup and dead code cull over xkb/.
The former <X11/extensions/XKBsrv.h> has been pulled into the server now as
include/xkbsrv.h, and the world updated to look for it in the new place,
since it made no sense to define server API in an extension header.  Any
further work along this line will need to do similar things with XKBgeom.h
and friends.
2007-03-20 18:37:02 -04:00