Commit Graph

368 Commits

Author SHA1 Message Date
Peter Hutterer
faca1bc582 xfree86: belately init RandR12 if xinerama fails. (#24627)
On Fri, Dec 11, 2009 at 10:19:01AM -0800, Keith Packard wrote:
> On Wed, 9 Dec 2009 11:55:14 +1000, Peter Hutterer <peter.hutterer@who-t.net> wrote:
> > On Tue, Dec 08, 2009 at 05:24:06PM -0800, Aaron Plattner wrote:
> > > On Tue, Dec 08, 2009 at 03:52:27PM -0800, Peter Hutterer wrote:
> > > > Xorg +xinerama crashes immediately due to whacky dependency between Xinerama
> > > > and RandR12. The latter doesn't initialize if Xinerama is enabled, but if
> > > > only one screen is found, Xinerama is disabled again and RandR12 tries to
> > > > access data it never initialized.
>
> I'd sure like to have RandR get enabled when xinerama doesn't; is there
> an easy way of making that happen here? Perhaps having the RandR12 code
> disable Xinerama when only one screen is found? Or some other kludge?

you know the dependency better than I do so any hints are apreciated.
afaict, the screenInfo.numScreens (the check used by Xinerama) isn't
necessarily initialized at this point so we can't use the same check.
The following seems to work though:

From 670b3ebdb7312a6433a8f093d0820785db2aea20 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon, 14 Dec 2009 11:00:58 +1000
Subject: [PATCH] xfree86: if only one screen was found, disable Xinerama (#24627)

Xorg +xinerama crashes immediately due to whacky dependency between Xinerama
and RandR12. The latter doesn't initialize if Xinerama is enabled, but if
only one screen is found, Xinerama is disabled again and RandR12 tries to
access data it never initialized.

Dependency chain is:
- ProcessCommandLine sets noPanoramiXExtension to FALSE
- xf86RandR12Init() is a noop
- PanoramiXExtensionInit sets noPanoramiXExtension to TRUE
- xf86RandR12CreateScreenResources tries to use the devPrivates key it never
  initialized.

This hack checks if there's only one screen at the time RandR12 is
initialized. If so, we expect Xinerama to fail anyhow so we disable it
ourselves and proceed as planned.

X.Org Bug 24627 <http://bugs.freedesktop.org/show_bug.cgi?id=24627>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-16 21:50:00 -08:00
Zhao Yakui
19f7c15e20 xfree86: Edid quirk for Philips LCD LP154W01
v1->v2: Make one condition case for one quirk instead of merging them
together. This is based on the Keithp's suggestion.

Move the EDID quirk for Philips LCD LP154W01 as the panel reports the vertical
size in cm.

https://bugs.freedesktop.org/show_bug.cgi?id=24482

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-11-20 07:21:26 -08:00
Adam Jackson
a5e59230de randr: Turn on ModeDebug during server setup
Signed-off-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-11-06 06:24:10 -08:00
Adam Jackson
ec98d7fc78 EDID: Extend the HDTV hack to handle "1368x769"
Hate televisions so much.

Signed-off-by: Adam Jackson <ajax@redhat.com>
2009-10-29 14:06:00 -04:00
Adam Jackson
7c0803f555 modes: Fix duplicate detection, and do it more consistently
Signed-off-by: Adam Jackson <ajax@redhat.com>
2009-10-29 14:06:00 -04:00
Adam Jackson
25236d19e6 EDID: Fix interlaced detailed timings to be frame size, not field size
Signed-off-by: Adam Jackson <ajax@redhat.com>
2009-10-29 14:06:00 -04:00
Adam Jackson
fb86433d89 modes: Decorate interlaced mode names with a trailing 'i'
Signed-off-by: Adam Jackson <ajax@redhat.com>
2009-10-29 14:06:00 -04:00
Ma Ling
fc2ec95664 EDID: CEA extension support
Reviewed-by: Adam Jackson <ajax@redhat.com>
2009-10-29 14:04:55 -04:00
Tormod Volden
757c11630d xfree86: Fix description of DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE
The message ending up in the log is misleading as to what the quirk
actually does: It ignores the sizes in the detailed timings and
replaces them with the display "Max Image Size".

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-10-28 15:57:21 -07:00
Dave Airlie
3ebb82d61c rotate: drop unwrapping inside block handler.
Keith has shown half the block handlers wrappers are wrong, also
dynamic wrapping/unwrapping from what I can see will happen after
the drivers, so its really accidental ABI, that we can't change
now without modifing drivers. So be safe for 1.7.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Declared-as-sane-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-02 12:15:58 +10:00
Keith Packard
db98b26ee1 Re-fix DGA removal.
Removing DGA ended up breaking any drivers calling into the old
xf86DiDGAInit function as it tried to see if DGA was already enabled
and ended up crashing if the VT wasn't completely initialized. Oops.

Also, if the driver initializes DGA itself, have the DiDGA
initialization overwrite that information as the DiDGA code will call
ReInit on mode detect.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-01 11:02:25 +10:00
Peter Hutterer
83023ffd09 xfree86: use the DDC size if either width or height of DisplaySize is bogus.
If either width or height of DisplaySize is invalid, assume that the
configuration is invalid and use the DDC-reported values instead.

See Comment 9, Bug 9758.
http://bugs.freedesktop.org/show_bug.cgi?id=9758#c9

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Dave Airlie <airlied@redhat.com>
2009-09-28 14:51:39 +10:00
Keith Packard
fcdc1d78cc Fix sporadic segfault on resume due to accidentally freeing cursor.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 11:38:22 +10:00
Matthias Hopf
91e1fe5863 Revert fe31f9c + 977953b to fix issue for good.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-22 11:38:17 +10:00
Matthias Hopf
977953bf14 Less intrusive workaround for sporadic segfault on resume.
Hopefully fixes fdo #24010 (memleak).
2009-09-21 16:41:49 +02:00
Keith Packard
0b7c6c728c xfree86/modes: Remove all framebuffer support from DGA
This removes all rendering and mapping code from xf86DiDGA, leaving
just mode setting and raw input device access. The mapping code didn't
have the offset within /dev/mem for the frame buffer and the pixmap
support assumed that the framebuffer was never reallocated.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-21 16:20:25 +10:00
Keith Packard
6086a60656 xf8CrtcSetModeTransform: free adjusted_mode name too
The adjusted mode was freed, but any name allocated for that was leaked.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:25 +10:00
Matthias Hopf
3bdf364761 Work around sporadic segfault on resume with intel/KMS due to cursor->bits == NULL.
Apparently SavedCursor is sometime tried to be set while already being set.
2009-09-16 16:05:36 +02:00
Peter Hutterer
72f6be5408 xfree86: remove now unused xf86CrtcShadowClear
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-09 11:36:37 +10:00
Adam Jackson
17545ed80e randr: Fix crtcs using set_mode_major()
We'd never mark the crtc as active, meaning (among other things) gamma
upload wouldn't work.
2009-09-02 14:40:07 -04:00
Keith Packard
e7dd1efef4 Ensure that rotation updates happen frequently
The smart scheduler is designed to minimize scheduler overhead by
increasing the interval between WaitForSomething calls when a single
client is running. However, the software rotation code depends on
its BlockHandler being invoked for screen updates; the long delays
caused by the smart scheduler optimizations means that screen updates
can be delayed a long time as well.

The change is simple -- prevent the smart scheduler from increasing
the scheduling interval while any screen is using software rotation.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-08-25 18:14:19 -07:00
Keith Packard
1740cda7a3 Perform rotation redisplay before calling driver block handler (which may flush rendering)
The rotation block handler uses regular driver rendering functions to
repaint the screen, if those functions queue commands in the driver,
it's important that the driver block handler be invoked after the
rotated image is drawn.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-08-25 18:14:19 -07:00
Keith Packard
4aab05e3b3 xf86_reload_cursors: fix cursor position to eliminate jumping after mode set
xf86_reload_cursors restores the cursor to the correct position, but
that must adjust for cursor hot spot and frame before calling down to
the hardware function, otherwise the cursor jumps to the wrong
position until it is repositioned by the user.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-08-25 18:14:19 -07:00
Michel Dänzer
9dc8106ba0 randr12: Add compatibility for XF86VidMode gamma ramps.
Fixes screensaver fadeout effects.

Also make all RandR 1.2 compatibility code for XF86VidMode operate only on the
CRTC associated with the compatibility output, not all CRTCs at once.
2009-07-21 14:34:47 +02:00
Adam Jackson
a98acb2907 s/xf86EnableOutputs/xf86CollectEnabledOutputs/ for clarity 2009-07-17 15:23:39 -04:00
Adam Jackson
8fab7f72f2 randr: Add Option "Primary" to Monitor sections 2009-07-17 15:23:30 -04:00
Adam Jackson
8868bb4131 randr: Un-duplicate the reduced blanking check. 2009-07-17 15:03:56 -04:00
Adam Jackson
453ee39bc6 xfree86: Fix some misleading comments 2009-07-17 15:03:56 -04:00
Adam Jackson
0bb9a7e165 displayid: Implement mode decoding. 2009-07-17 14:48:55 -04:00
Adam Jackson
2f1a9c5baa ddc: s/xf86DDCMonitorSet/xf86EdidMonitorSet/
Since we need a second path for DisplayID.
2009-07-17 13:42:57 -04:00
Oliver McFadden
66eabbebaf Coverity Prevent: RESOURCE_LEAK in xf86CrtcSetInitialGamma 2009-07-16 18:50:22 +03:00
Peter Hutterer
d3f6b43a24 Update to xextproto 7.0.99.1.
xextproto had Xlib client headers moved into libXext.
Protocol header files are named fooproto.h, header files with constants
foo.h or fooconst.h where foo.h was already in use for client-side headers.
2009-07-15 17:00:05 +10:00
Peter Hutterer
ad508c93c2 xfree86: switch to byte counting functions
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-07-14 10:13:44 +10:00
Ben Skeggs
048697ccfa quirk: use first detailed timing as preferred for PEA prod 9003 (rh#492359)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-23 15:55:25 +10:00
Dave Airlie
0de58c88ab xfree86: move didLock assignment down to where the function pointer is valid.
crtc->funcs->lock is NULL, so it's no use calling it here. Move it down so
it's actually defined before we use it.

Introduced with 6f59a81600.

Tested-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-11 14:24:42 +10:00
Benjamin Defnet
6f59a81600 hw/xf86/modes: Set crtc mode/rotation/transform before calling set_mode_major
This moves code out of each implementation of set_mode_major and back into
the X server. The real feature here is that the transform is now available
in the crtc for use by either xf86CrtcRotate or whatever the driver wants to
do. Without this change, the transform was lost for drivers providing the
set_mode_major interface.

Note that users of this API will want to stop smashing the transformPresent
field, and could also stop setting mode/x/y/rotation for new enough X servers,
but there's no reason to make that change as it will break things when
running against older X servers.

Signed-off-by: Keith Packard <keithp@keithp.com>
Acked-by: Daniel Stone <daniel@fooishbar.org>
2009-06-09 16:23:38 -07:00
Dave Airlie
b6c16fc7da crtc/gamma: check xf86_config is valid before using it.
If you have multiple cards, some that support randr 1.2 and some that don't
you can get a null dereference in here.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-06-05 12:04:03 +10:00
Matthias Hopf
75795637c7 Revert "randr: Setting gamma: inverse logic looks more sane"
This reverts commit 79138eec1b.
2009-06-02 18:41:36 +02:00
Federico Mena Quintero
e08c6a0752 randr: bug #21554 - re-probe outputs when coming back from laptop unsuspend
Make xf86 RANDR wrap the EnterVT call chain, so it can re-probe the
outputs when a laptop comes back from suspend/unsuspend (actually, any
time that we enter our VT again).  The X server should then send RR*
events to clients, so they can cope with a monitor that was unplugged
while the laptop was suspended.

Signed-off-by: Federico Mena Quintero <federico@novell.com>
2009-05-27 15:57:29 -04:00
Adam Jackson
99e22b86c5 EDID: Add modes from Established Timings III descriptor to mode pool
EDID 1.4, section 3.10.3.9
2009-05-22 13:27:16 -04:00
Matthias Hopf
79138eec1b randr: Setting gamma: inverse logic looks more sane 2009-05-20 12:43:24 +02:00
Julien Cristau
2be5eecb4b xfree86: add edid quirk for Samsung Syncmaster 2333HD
It reports vertical size in cm in the detailed mode.
X.Org bug#21750 <http://bugs.freedesktop.org/show_bug.cgi?id=21750>

Reported-by: Peter Poklop <Peter.Poklop@gmx.at>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2009-05-15 17:35:30 +02:00
Michel Dänzer
2c1190f888 randr12: Initialize and keep track of updates to VidMode extension gamma value.
This way clients querying the gamma value via the VidMode extension at least
get the last value set via the same, rather than always something bogus.

Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-05-14 11:39:16 +02:00
Michel Dänzer
fc3ce861cd randr12: Fix calculation of gamma ramp values.
The reciprocal gamma value was missed in the first copy and this mistake was
propagated to the second one.

Signed-off-by: Michel Dänzer <daenzer@vmware.com>
2009-05-14 11:35:25 +02:00
Jesse Barnes
94648bb797 Don't prepare outputs & crtcs if set_mode_major is present
A driver with this hook will take care of preparing the outputs & crtcs,
so calling the prepare functions will just cause unnecessary flicker.

Fixes bug #21077
2009-05-04 15:38:22 -07:00
Julien Cristau
0dfb97f15f Bug#21324: Add quirk for Iiyama Vision Master 450
Reported-by: Jeremy Henty <onepoint@starurchin.org>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2009-04-22 20:02:38 +02:00
Adam Jackson
ad76656f88 randr: Accept gamma set requests from XF86VidMode clients too 2009-04-17 17:47:54 -04:00
Dave Airlie
faf7dfa099 randr12: looking up these bits if randr isn't initialised is bad.
When xinerama is enabled we don't get randr protocol, but the
driver might still want randr internals
2009-04-15 18:39:55 +10:00
Tormod Volden
b1dab580bd xfree86: edid quirk for Philips LCD LP154W01-TLAJ
This panel reports its vertical size in cm.

X.Org bug#21000 <http://bugs.freedesktop.org/show_bug.cgi?id=21000>

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2009-04-01 20:05:23 +02:00
Matthias Hopf
cadf65a6e1 randr: Nuke broken set_origin shortcut
Shortcut is impossible to implement this way, because we don't know for sure
whether the crtc of an output has changed or not.
2009-03-10 15:49:49 +01:00
Adam Jackson
8a6ed44a8b randr: Fix thinko in xf86TargetPreferred
The only-one-output case would only work right if that also happened to
be the zeroth output.  Oops.
2009-03-02 14:26:23 -05:00
Keith Packard
c090f5514d Pre-clip panning coordinates to keep crtc within panning region
There is a separate panning region check, but that doesn't work under
transformation, so just pre-clip the mouse coordinates when computing the
panning offsets. This leaves the case where panning constants are changing
unresolved.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-25 10:14:36 -08:00
Keith Packard
5394b7e662 Eliminate the shadow clear on transform change
When the crtc transformation changes, the entire crtc must be repainted.
This was being done by clearing the shadow and then painting the rectangle
containing the screen image; the clear being required as the screen image
may not fill the crtc. When changing the transform rapidly, this leads to
flashing. Eliminate the clear by painting the entire crtc instead of just
the screen rectangle.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 11:09:08 -08:00
Julien Cristau
ab331aa76f xfree86: ModeDebug is a boolean, not a string
Signed-off-by: Julien Cristau <jcristau@debian.org>
2009-02-16 23:08:09 +01:00
Chris Ball
45e14f5153 Build fix for xf86EdidModes.c
Commit 20ac314.. forgets to declare hsize/vsize/refresh.
2009-02-13 20:32:02 -05:00
Adam Jackson
20ac3140ce EDID: Hack for 1366x768 in standard timing descriptors
All you get for standard timing descriptors is horizontal size in
multiples of 8 pixels (which means you can't say 1366) and height in
terms of aspect ratio (which means you can't say 768).  You'd like to
just fuzzy-match this by walking the DMT list for sufficiently close
modes, but you can't because DMT is useless and only defines a 1360x768
mode, because it's _also_ specified in terms of character cells despite
providing pixel exact timings.  Neither can you use CVT or GTF to
generate the timings, because they _also_ believe that modes have to be
a multiple of 8 pixels.

You'd also hope you could find a timing definition for this in CEA, but
you can't because CEA only defines transmission formats that actually
exist.  So there's 480p, 720p, and 1080p, but no 768p.  And why would
there be, after all, the encoded signal is never 768p so obviously no
one would ever make a display in that format.

So instead, make a CVT mode since that's likely to be handled well by
just about everything, smash the horizontal active down by 2, and shift
the sync pulse by 1.  Underscanning the hard way.

Pass the suicide.
2009-02-13 15:12:06 -05:00
Adam Jackson
bcafdfbed6 RANDR: Validate entire mode list for interlace and doublescan
Otherwise drivers have to refuse interlace twice: once in the output
config, and once in ->valid_mode() to catch output and config modes.
If you can't do interlaced modes, asking nicely for it in the config
isn't going to suddenly make it work.
2009-02-13 14:06:07 -05:00
Keith Packard
7968823cbc Handle the combination of panning and crtc transforms
This patch gets the shadow scanout buffer repainted on panning area changes.
It does not, however, track the mouse correctly.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-03 20:21:07 -08:00
Keith Packard
763df9eec7 Damage re-used shadow scanout buffer using new transforms.
When the shadow scanout buffer can be re-used, the underlying framebuffer
area must be damaged so that the scanout will be repainted. This patch
delays the addition of that damaged area until after the transform in the
crtc has been updated, otherwise the old transform would have been used and
the wrong area repainted.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-03 20:21:02 -08:00
Tomas Carnecky
bc57efffe6 Fix "warning: unused variable XXX"
events.c:4614: warning: unused variable ‘kbd’
xkbUtils.c:361: warning: unused variable ‘maxKeysPerMod’
xf86Events.c:409: warning: unused variable ‘ke’
generic.c:131: warning: unused variable ‘cs’
generic.c:130: warning: unused variable ‘size’
xf86RandR12.c:591: warning: unused variable ‘crtc’

Signed-off-by: Tomas Carnecky <tom@dbservice.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-04 09:41:25 +10:00
Pierre Willenbrock
29b3b88dc7 Prevent double unref of glxdrawables
Found by valgrind. Bug #18917.
2009-02-01 09:06:43 -08:00
Eric Anholt
f716e3f344 modes: Protect xf86_crtc_supports_gamma() from non-RandR 1.2 drivers. 2009-01-30 20:10:21 -08:00
Keith Packard
ea309e4745 Make crtc_notify wrap/unwrap code do nothing unless mode code is inuse
Drivers not using the new hw/xfree86/modes code would crash in DRI due to
that code trying to monitor CRTC changes.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-01-30 14:19:41 -08:00
Keith Packard
fff00df94d Ignore EDID-supplied monitor physical sizes for core screen size
We report the EDID values in RandR, and we let people configure whatever
they like for the screen in xorg.conf. Reporting the EDID values in the core
means applications get inconsistent font sizes in the default configuration.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-01-30 14:16:12 -08:00
Xiang, Haihao
5f3188228e avoid a potential endless loop.
Previously it is possible that creating rotation data, then cleaning
up and creating again so that pScreen->BlockHandler and
xf86_config->BlockHandler all point to xf86RotateBlockHandler.
See bug #19343.
2009-01-09 09:37:56 -08:00
Paulo Cesar Pereira de Andrade
200230535f Update sdk headers to export new symbols.
All symbols in installed sdk headers should be explicitly tagged
as exported symbols. Otherwise, to ensure it is not a mistake, one
could write it as something like:
extern /* NOEXPORT */ type name ...;
but the proper procedure really should be to use a non sdk header
(or a "noinst_" one).
  This patch also removes prototypes to some functions that existed
only temporarily.
2009-01-05 16:49:57 -02:00
Daniel Stone
7da4e901e0 XFree86: Fix build with DGA disabled
It's optional, so we might as well work when it's disabled.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2009-01-05 11:23:39 +02:00
Maarten Maathuis
b5736d237a randr/xfree86: Fix initial gamma computation.
- The previous version overflowed sometimes.
2008-12-22 19:54:17 +01:00
Maarten Maathuis
82fba7697f xfree86/randr: Avoid a crash when xf86CrtcConfigPrivateIndex is -1. 2008-12-22 00:33:55 +01:00
Maarten Maathuis
aedd2f566d randr/xfree86: Fix a one off error in the panning calculations.
- Example: mode 1280x1024, panned area 1281x1024
           panned_area.x2 = 1281
           mode.width = 1280
  If you substract 1280 from 1281, then that leaves you with one.
  Which is the one pixel that you need to move to actually see the last pixel collumn.
  Substracting 1 from this will consistently prevent you from seeing the right and bottom edge.
2008-12-19 19:10:23 +01:00
Maarten Maathuis
3d3c234b43 randr: add some notes about the stuff that changed in driver ABI 2 2008-12-18 16:26:38 +01:00
Maarten Maathuis
1b244feb4c randr: check for malloc failure 2008-12-18 16:12:12 +01:00
Maarten Maathuis
1001403301 Forgot to fix a comment. 2008-12-18 00:19:06 +01:00
Maarten Maathuis
9fa15bef59 randr: some improvements, fixes and crtc abi bump
- Add active field to crtc.
- Set gamma (only) whenever a crtc becomes active.
- Check for xf86_config being NULL.
- Increase crtc abi to 3.
- A few other fixes.
2008-12-17 23:46:31 +01:00
Maarten Maathuis
91f73b79b7 randr: Improve per-crtc gamma support.
- The Gamma values from the monitor section are now used during initial config.
- The old colormap system is disabled when gamma set hook is available.
- Gamma values are now persistent for the lifetime of the xserver.
- This requires no driver changes and should be driver ABI compatible.
2008-12-17 17:03:12 +01:00
Matthias Hopf
8511a964f8 randr: Update EDID_ATOM_NAME to reflect RandR 1.3 name change 2008-12-16 18:21:20 +01:00
Keith Packard
063eb6743c Patch brown-bag fix for bug 19017 (scrn->virtualX/virtualY 0 before PreInit)
When a driver uses a crtc during device detection, the scrn has not yet been
configured and virtualX/virtualY are still zero. This caused the X server
to try and allocate a shadow frame buffer, which couldn't work.

Detect this by checking for zero virtualX/virtualY values.

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-15 19:58:20 -08:00
Keith Packard
fde2f96103 Use scrn->virtualX/virtualY in xf86CrtcFitsScreen. Fix bug 19017.
pScreen->width/height are not initialized when doing initial mode setting,
which makes this function incorrectly fail. Using scrn->virtualX should work
in all cases though.

Bug 19017 reports a crash in xf86CrtcSetModeTransform when doing a modeset
for output probing, long before the screen array is initialized; that was
caused by a work-around to set pScreen->width/height so that xf86CrtcFitsScreen
could find the right values.

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-15 11:45:43 -08:00
Keith Packard
1ba4cbb159 Clean up rotation data when crtc is turned off
The shadow frame buffer and other data used for rotation need to be freed
when the crtc is disabled, not just when rotation is disabled.

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-15 11:45:42 -08:00
Cooper Yuan
2a61397d17 Fix typo in xf86PickCrtcs() 2008-12-15 10:29:34 -05:00
Matthias Hopf
d41b8960be randr: Fix initial panning border copy
Thanks to Julien Cristau for finding this.
2008-12-11 18:48:02 +01:00
Matthias Hopf
f8e52f1b6d randr: Update initial screen size if panning information is present 2008-12-11 18:30:25 +01:00
Matthias Hopf
24d6b7d1c5 randr: Fix error message for bad panning config 2008-12-11 18:30:25 +01:00
Matthias Hopf
fdbbe65a7e randr: Add monitor option "Panning" for initial panning configuration 2008-12-11 18:30:25 +01:00
Paulo Cesar Pereira de Andrade
b1dac41fb3 Use libtool convenience libraries and better "symbol" table.
All .a libraries were converted to .la, and instead of linking the
Xorg binary with a mix of .a and .la, and adding some libraries more
then once in the command line, etc, now it generates a single libxorg.la
from all the required convenience libraries, and links with a dummy
xorg.c (that should usually be the file with the main function...).
This removes the requirement of some things like libosandcommon and
libinit, that existed to circumvent problems when linking multiple
.a and .la in the final Xorg binary.

  The "symbol table" is now generated dynamically, by a shell script,
with an embedded gawk parser that parses cpp output. The new file
sdksyms.sh is generated by hand by analyzing all Makefile.am's and
making it create a sdksyms.c file, that includes all sdk headers that
will add symbols for the Xorg binary. Module headers aren't read, and
a in 2 files it was required to add a "<hash>ifndef XorgLoader" around
declarations shared between the Xorg binary and libextmod. A few
other changes were added to other sdk headers, like preventing
multiple inclusion, or including other headers to satisfy dependencies.

  This should be a lot more portable, and better (hopefully properly)
using libtool to generate convenience libraries.
2008-12-07 02:22:19 -02:00
Paulo Cesar Pereira de Andrade
091a50d126 Move _X_EXPORT attribute to header file.
The attribute should be set on header files to make it easier to
manage what symbols are available to modules.
  _X_EXPORT should be used in sources only for special cases, like
symbols that must be visible by non video/input driver/modules but
should not be "advertised" in the sdk.
2008-12-04 18:23:25 -02:00
Matthias Hopf
e5ab9e6662 randr: Allow panning to be disabled per axis 2008-12-04 18:16:43 +01:00
Matthias Hopf
bad118ace6 randr: Rework panning area verification 2008-12-04 18:16:43 +01:00
Matthias Hopf
219c26ce0c randr: Don't change panning parameters if verification fails. 2008-12-04 18:16:43 +01:00
Matthias Hopf
18a8bac1a1 randr: Rename pan() to set_origin(), and xf86CrtcPan() to xf86CrtcSetOrigin() 2008-12-04 18:16:43 +01:00
Matthias Hopf
b929d721ef randr: Panning support 2008-12-04 18:16:43 +01:00
Matthias Hopf
834cbc16f3 randr: Crtc interface update for panning support. 2008-12-04 18:16:42 +01:00
Matthias Hopf
a475eb9fee randr: Weird enough, crtc->version was never set upon creation. Fix that. 2008-12-04 18:16:42 +01:00
Paulo Cesar Pereira de Andrade
49f77fff14 Rework symbol visibility for easier maintenance
Save in a few special cases, _X_EXPORT should not be used in C source
files. Instead, it should be used in headers, and the proper C source
include that header. Some special cases are symbols that need to be
shared between modules, but not expected to be used by external drivers,
and symbols that are accessible via LoaderSymbol/dlopen.

  This patch also adds conditionally some new sdk header files, depending
on extensions enabled. These files were added to match pattern for
other extensions/modules, that is, have the headers "deciding" symbol
visibility in the sdk. These headers are:
o Xext/panoramiXsrv.h, Xext/panoramiX.h
o fbpict.h (unconditionally)
o vidmodeproc.h
o mioverlay.h (unconditionally, used only by xaa)
o xfixes.h (unconditionally, symbols required by dri2)

  LoaderSymbol and similar functions now don't have different prototypes,
in loaderProcs.h and xf86Module.h, so that both headers can be included,
without the need of defining IN_LOADER.

  xf86NewInputDevice() device prototype readded to xf86Xinput.h, but
not exported (and with a comment about it).
2008-12-03 05:43:34 -02:00
Stuart Bennett
0b8f8b24f7 xf86Cursors: xf86_reload_cursors shouldn't unconditionally show hwcursor (#14820)
Also, no need to call ShowCursor when SetCursorPosition already does it
Based on a previous patch by Maarten Maathuis

Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-02 22:54:18 -08:00
Kristian Høgsberg
09df7cc5ad Avoid dereferencing NULL pScreen in xf86CrtcSetModeTransform().
We can get there during PreInit as we set a mode for load detection.
At that time there's no pScreen anywhere, so just skip the optimization
then.
2008-12-01 12:41:10 -05:00
Paulo Cesar Pereira de Andrade
d6cbd4511e Export symbols defined in the sdk.
This is the biggest "visibility" patch. Instead of doing a "export"
symbol on demand, export everything in the sdk, so that if some module
fails due to an unresolved symbol, it is because it is using a symbol
not in the sdk.

  Most exported symbols shouldn't really be made visible, neither
advertised in the sdk, as they are only used by a single shared object.

  Symbols in the sdk (or referenced in sdk macros), but not defined
anywhere include:
XkbBuildCoreState()
XkbInitialMap
XkbXIUnsupported
XkbCheckActionVMods()
XkbSendCompatNotify()
XkbDDXFakePointerButton()
XkbDDXApplyConfig()
_XkbStrCaseCmp()
_XkbErrMessages[]
_XkbErrCode
_XkbErrLocation
_XkbErrData
XkbAccessXDetailText()
XkbNKNDetailMaskText()
XkbLookupGroupAndLevel()
XkbInitAtoms()
XkbGetOrderedDrawables()
XkbFreeOrderedDrawables()
XkbConvertXkbComponents()
XkbWriteXKBSemantics()
XkbWriteXKBLayout()
XkbWriteXKBKeymap()
XkbWriteXKBFile()
XkbWriteCFile()
XkbWriteXKMFile()
XkbWriteToServer()
XkbMergeFile()
XkmFindTOCEntry()
XkmReadFileSection()
XkmReadFileSectionName()
InitExtInput()
xf86CheckButton()
xf86SwitchCoreDevice()
RamDacSetGamma()
RamDacRestoreDACValues()
xf86Bpp
xf86ConfigPix24
xf86MouseCflags[]
xf86SupportedMouseTypes[]
xf86NumMouseTypes
xf86ChangeBusIndex()
xf86EntityEnter()
xf86EntityLeave()
xf86WrapperInit()
xf86RingBell()
xf86findOptionBoolean()
xf86debugListOptions()
LoadSubModuleLocal()
LoaderSymbolLocal()
getInt10Rec()
xf86CurrentScreen
xf86ReallocatePciResources()
xf86NewSerialNumber()
xf86RandRSetInitialMode()
fbCompositeSolidMask_nx1xn
fbCompositeSolidMask_nx8888x0565C
fbCompositeSolidMask_nx8888x8888C
fbCompositeSolidMask_nx8x0565
fbCompositeSolidMask_nx8x0888
fbCompositeSolidMask_nx8x8888
fbCompositeSrc_0565x0565
fbCompositeSrc_8888x0565
fbCompositeSrc_8888x0888
fbCompositeSrc_8888x8888
fbCompositeSrcAdd_1000x1000
fbCompositeSrcAdd_8000x8000
fbCompositeSrcAdd_8888x8888
fbGeneration
fbIn
fbOver
fbOver24
fbOverlayGeneration
fbRasterizeEdges
fbRestoreAreas
fbSaveAreas
composeFunctions
VBEBuildVbeModeList()
VBECalcVbeModeIndex()
TIramdac3030CalculateMNPForClock()
shadowBufPtr
shadowFindBuf()
miRRGetScreenInfo()
RRSetScreenConfig()
RRModePruneUnused()
PixmanImageFromPicture()
extern int miPointerGetMotionEvents()
miClipPicture()
miRasterizeTriangle()
fbPush1toN()
fbInitializeBackingStore()
ddxBeforeReset()
SetupSprite()
InitSprite()
DGADeliverEvent()

  SPECIAL CASES
o defined as _X_INTERNAL
	xf86NewInputDevice()
o defined as static
	fbGCPrivateKey
	fbOverlayScreenPrivateKey
	fbScreenPrivateKey
	fbWinPrivateKey
o defined in libXfont.so, but declared in xorg/dixfont.h
	GetGlyphs()
	QueryGlyphExtents()
	QueryTextExtents()
	ParseGlyphCachingMode()
	InitGlyphCaching()
	SetGlyphCachingMode()
2008-11-29 23:56:06 -02:00
Maarten Maathuis
ffb484f7ef randr: Avoid needlessly creating a shadow framebuffer.
- pScreen->width and height were zero, so it didn't "fit" the screen.
2008-11-29 14:30:55 +01:00
Paulo Cesar Pereira de Andrade
31285d063e Make visible symbols required by xorg modules.
This patch exports all symbols required by the compilable
(in a x86 linux computer) xorg/driver/* modules.
  Still missing symbols worth mentioning are:

sunleo
	miFindMaxBand no longer available

intel	(uxa/uxa-accel.c)
	fbShmPutImage no longer available (and should have been static)

mga
	MGAGetClientPointer (should come from matrox's libhal)

  This is not a definitive "visibility" patch, as all it does is to
export missing symbols, but the modules that current don't compile,
may require more symbols once fixed, and third party drivers should
also require more symbols exported.
  A "definitive" patch should export symbols defined in the sdk.
2008-11-28 01:55:11 -02:00
Keith Packard
4715f079b9 Merge commit 'origin/master' 2008-11-25 22:19:08 -08:00