Commit Graph

909 Commits

Author SHA1 Message Date
Keith Packard
f8db7665dc 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.
2007-03-20 07:17:27 -07:00
Keith Packard
0f80340a52 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 20:14:05 -07:00
Keith Packard
52fccb9d9f 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 17:29:23 -07:00
Keith Packard
b14f003b0e Don't wedge when rotating more than one CRTC.
Rotation block handler was re-registering the rotation damage structure,
creating an infinite loop in the damage code. Track registration of the
damage structure to avoid this.
2007-03-15 16:16:16 -07:00
Keith Packard
5b77bf2d02 Allow xf86_reload_cursors during server init.
xf86_reload_cursors is supposed to be called from the crtc mode setting
commit hook; as that happens during server initialization, check for this
case.
2007-03-15 10:50:45 -07:00
Keith Packard
4d81c99a46 Create driver-independent CRTC-based cursor layer.
This moves most of the cursor management code out of the intel driver and
into the general server code. Of course, the hope is that this code will be
useful for other driver writers as well.

Check out xf86Crtc.h for the usage information, making sure you add the
needed hooks to the crtc funcs structure for your driver.
2007-03-14 23:59:29 -07:00
Keith Packard
ae9d5aa479 Remove stale monitor data when output becomes disconnected.
Remove parsed EDID and EDID property from disconnected outputs.
2007-03-07 20:52:31 -08:00
Keith Packard
a59c31b0f7 Add hw/xfree86/docs/README.modes, documenting new mode setting APIs.
This document covers both API and xorg.conf usage of the new mode setting
APIs.
2007-03-06 23:19:30 -08:00
Keith Packard
558a4f5588 Add xf86CrtcScreenInit to share initialization across drivers.
xf86CrtcScreenInit performs initialization that needs to happen at
ScreenInit time.
2007-03-06 23:15:34 -08:00
Keith Packard
3f5cedf00a Allow relative positions to use output names or monitor identifiers.
Previous version used monitor identifiers if present, otherwise output
names. That caused existing working configurations to break when additional
information was added to the configuration file.
2007-03-05 23:49:35 -08:00
Keith Packard
843077f23a Use EDID data to set screen physical size at server startup.
Screen physical size is set to a random value before the RandR code gets
control, override that and reset it to a value based on the compat_output
physical size (if available). If that output has no physical size, just use
96dpi as the default resolution and set the physical size as appropriate.
2007-03-05 23:36:00 -08:00
Keith Packard
bcade98cca Add xf86SetDesiredModes to apply desired modes to crtcs.
xf86SetDesiredModes applies the desired modes to each crtc (as selected by
xf86InitialConfiguration initially and modified by successful mode settings
afterwards). For crtcs without a desired mode, pScrn->currentMode is used to
select something workable.
2007-03-05 22:07:01 -08:00
Keith Packard
5a595c1f76 Move xf86SetSingleMode into X server from intel driver.
This function applies a single mode to the screen (as from RandR 1.1,
XFree86-VidModeExtension or XFree86-DGA) using a policy that selects one
output to reconfigure to the requested mode and then makes all other outputs
fit within that size.
2007-03-05 10:38:59 -08:00
Alan Coopersmith
e707604ab3 Sun bug 6529003: Xorg should not be including <sys/immu.h> on Solaris
<sys/immu.h> was removed from the latest Solaris Nevada build, but it's
been useless to Xorg for a long time (it only declared a couple of kernel
variables)
<http://bugs.opensolaris.org/view_bug.do?bug_id=6529003>
2007-03-04 19:19:18 -08:00
Dave Airlie
6b63fb399a add a standard connector type and name for us as an output property
(cherry picked from commit 8ba5e8d820)
2007-03-04 19:10:33 -08:00
Dave Airlie
90f5e77eab modes: add commit/prepare hooks
(cherry picked from commit 2e31872e05)
2007-03-04 19:10:26 -08:00
Keith Packard
e6af7569f2 Remove debugging ErrorF from rotation code. 2007-03-04 17:15:24 -08:00
Keith Packard
2a50ca2160 Handle non-zero origin rotated crtc. Damage crtc area on re-rotate.
Box transformation from source to dest area was broken, leaving the wrong
areas painted when the crtc origin was non-zero.

When rotating from left to right, the pixmap doesn't get reallocated, and so
no damage was left in the pixmap from xf86RotatePrepare. Separately damage
the whole crtc area when this occurs to repaint the area.
2007-03-04 17:06:37 -08:00
Aaron Plattner
629515a159 Add a canGrow argument to xf86InitialConfiguration.
canGrow indicates to the DDX that the driver can enlarge the desktop via the
xf86_config->funcs->resize hook.  If so, xf86InitialConfiguration will set
virtual[XY] to match the configuration it chooses and will leave the crtc config
size ranges alone.  If FALSE, it will bloat the screen to fit the largest probed
mode and also set the crtc config max size to limit the desktop to the initial
virtual[XY] size.
2007-03-03 22:21:59 -08:00
Aaron Plattner
1ce0c6877a Add a screen resize hook to xf86CrtcConfigRec.
This hook is called when the DDX needs to resize the screen.  The driver is
responsible for changing virtualX and virtualY, along with any other related
screen properties (devPrivate.ptr, devKind, displayWidth, etc.).

Use the size range from the crtc config instead of randrp->virtual[XY] when
reporting the min and max screen sizes to the DDX.
2007-03-03 22:21:52 -08:00
Adam Jackson
1fbb3458a5 Don't install libi2c.a 2007-02-23 15:21:48 -05:00
Keith Packard
3506b9376c Eliminate RRModeRec devPrivate field.
The xf86 mode setting code was mis-using this field to try and store a
pointer to a DisplayModeRec, however, each output has its own copy of every
DisplayModeRec leaving the one in in the RRModeRec devPrivate field pointing
at a random DisplayModeRec.

Instead of attempting to rectify this, eliminating the devPrivate entirely
turned out to be very easy; the DDX code now accepts an arbitrary RRModeRec
structure and set that to the hardware, converting it on the fly to a
DisplayModeRec as needed.
2007-02-20 23:04:26 -08:00
Keith Packard
63cc2a51ef Add support for user-defined modelines in RandR.
The RandR protocol spec has several requests in support of user-defined
modes, but the implementation was stubbed out inside the X server. Fill out
the DIX portion and start on the xf86 DDX portion. It might be necessary to
add more code to the DDX to insert the user-defined modes into the output
mode list.
2007-02-18 23:49:38 -08:00
Keith Packard
1418fd8ce4 Merge branch 'server-1.3-origin' into server-1.3-branch 2007-02-17 17:37:56 -08:00
Alan Coopersmith
9ad0811a54 Check for __sparc as well as __sparc__ for compatibility with Sun cc
(gcc defines __sparc__, Sun cc defines __sparc)
(cherry picked from commit f9f7d7f3be)
2007-02-17 17:31:36 -08:00
Carl Switzky
6fd297e362 Add ast driver/device info to Xorg server & config utilities
(cherry picked from commit edd5f17454)
2007-02-17 17:18:28 -08:00
Aaron Plattner
d3f507c2a2 Add an RDTSC implementation to the x86 emulator.
This instruction is being used in some debug VBIOSes.  This implementation
doesn't even try to be accurate.  Instead, it just increments the counter by a
fixed amount every time an rdtsc instruction in encountered, to avoid divides by
zero.
2007-02-17 17:15:56 -08:00
Keith Packard
5f6f8616d8 Don't set subpixel order during startup; the screen won't be ready.
in xf86CrtcSetMode, scrn->pScreen will be NULL during server startup time,
so don't try to set the subpixel order. subpixel order will be set in the
randr initialization anyways.
2007-02-16 10:06:22 -08:00
Keith Packard
0ab6c03c17 Ensure drivers can use new modes header files.
New modes header files required a few minor changes to be used by external
drivers, the most notable of which is the publication of the config file
parser header files.
2007-02-16 02:17:11 -08:00
Keith Packard
3d5e2bc5a6 Respect rotation in initial screen size computation. 2007-02-16 00:56:00 -08:00
Keith Packard
5f1046f6d3 Enable startup-time rotation; change rotation pixmap creation API.
Add monitor "Rotate" option taking one of "normal", "left", "inverted" or
"right". However, because initial mode selection is made before the screen
is completely initialized, we cannot create the shadow pixmap object at this
point. Pend the shadow pixmap creation until the block handler.

Note that this code is not completely functional yet.
2007-02-16 00:41:29 -08:00
Keith Packard
3eebfb0a99 Report correct RandR 1.0 sizeID. Report correct subpixel order.
RandR 1.0 sizeID must be computed the same way every time, so when reporting
it in the ScreenChangeNotify event, just construct the usual 1.0 data block
and use that.

subpixel geometry information can be computed by looking at the connected
outputs and finding any with subpixel geometry and using one of those for
the global screen subpixel geometry. This might be improved by reporting
None if more than one screen has information and they conflict.
2007-02-15 20:13:15 -08:00
Keith Packard
7971392cdd Merge branch 'server-1.2-branch' into server-1.3-branch 2007-02-15 11:32:19 -08:00
Keith Packard
585a32be88 Allow new modes code to build inside drivers as well as server.
Use config.h for driver builds where xorg-config.h isn't available.
2007-02-15 11:27:35 -08:00
Tilman Sauerbeck
96c637350d Distribute hw/xfree86/modes. 2007-02-15 17:51:01 +01:00
Keith Packard
12505d9c0a 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-14 18:13:15 -08:00
Alan Coopersmith
967865393c Plug memory leak in doLoadModule()
(cherry picked from cf7ca9d09c commit)
2007-02-13 13:25:46 -08:00
Alan Coopersmith
46e3ed88cc Make xf1bpp build correctly with compilers that don't support -include
(cherry picked from 0f0c321adf commit)
2007-02-13 13:25:43 -08:00
Eric Anholt
ed1778cfb2 Merge EXA updates up to commit cf5b29d75d.
This is EXA version 2.1, including the damagetrack work.
2007-02-12 16:08:00 -08:00
Keith Packard
ceca97cb84 Merge branch 'server-1.2' into randr-1.2-for-server-1.2 2007-01-29 22:03:19 -08:00
Adam Jackson
bd8ef88d18 Bump video and input ABI minors.
Sadly this is a video ABI number already present in master, but that'll
just have to change, won't it?
2007-01-22 23:00:06 -05:00
Eric Anholt
fd77f9cbba Try dlsym(RTLD_DEFAULT) first when finding symbols.
The previous mechanism failed when finding drm symbols now that libdrm has
moved to being linked by libdri instead of being linked into the server.
(cherry picked from aab2ca2042 commit)
2007-01-22 17:53:15 -05:00
Alan Coopersmith
1dac07bf52 Update pci.ids to 2007-01-18 snapshot
(includes a whole bunch of ATI device id updates)
(cherry picked from 8b3a591cd3 commit)
2007-01-18 16:04:41 -08:00
Aaron Plattner
7c937bfb8d Fix BSF and BSR instructions in the x86 emulator.
Patch courtesy of Michael Yaroslavtsev.
(cherry picked from 66fa87292e commit)
2007-01-10 15:34:23 -05:00
Keith Packard
06a4be5e7a Merge branch 'server-1.2-branch' into randr-1.2-for-server-1.2 2006-12-21 23:52:24 -08:00
Alan Coopersmith
f4ef99e816 xorg.conf man page should say "XFree86-DGA", not "Xorg-DGA"
(cherry picked from e437f357b6 commit)
2006-12-21 10:51:27 -08:00
Alan Coopersmith
5f14c9a78b Xorg & Xserver man page updates for 1.2 release
- Added -extension & +extension to Xserver man page
- Changed Xorg synopsis from X11R6 to X11R7
- Clarified Xorg ancestry description
- Moved Solaris to free/Open Source OS list
- Removed references to MetroLink module loader & getconfig
- Converted (1) to (__appmansuffix__) in a few more places
- Replaced http://www.freedesktop.org/cvs/ with http://gitweb.freedesktop.org/
(cherry picked from 1b029fd896 commit)
2006-12-18 14:51:49 -08:00
Samuel Thibault
bd7377f9e8 xfree86/hurd: re-add missing keyboard support (bug #5613)
Re-add missing hurd_io.c and hurd_kbd.c, which aren't needed in master,
but are required in the 1.2.x branch.
2006-12-16 19:41:25 +02:00
Alan Hourihane
731952c561 Set Int10Current->Tag for the linux native int10 module
Fixes bug #9296
2006-12-13 12:13:11 +00:00
Keith Packard
12c9714ba7 Merge branch 'server-1.2-branch' into randr-1.2-for-server-1.2 2006-12-12 09:22:14 -08:00