ia64 specific functions + defines.
Still uses /proc interface for some scaning code.
Based on code from Egbert Eich <eich@freedesktop.org>.
(cherry picked from caaa113acf commit)
Additional scanning code uses the /sys interface of 2.6 kernels.
Cleaned up the use of tags and already split domain/bus/dev/fn.
(cherry picked from 5afc6c1a14 commit)
Add a general socket (not input device, but still need to be woken for it)
handler to both the DIX and XFree86, and make XFree86's ACPI handling use
it. This stops DPMS waking up every time an ACPI notification comes in.
If we're mapping something in the "legacy range" (0-1Mb), we shouldn't
expand the requested range to the entire 0-1Mb range. Typically this
is for mapping the VGA frame buffer, and some platforms support mmap of
the frame buffer but not the entire 0-1Mb range.
For example, HP sx1000 and sx2000 ia64 platforms can have memory from
0-0x9ffff, VGA frame buffer from 0xa0000-0xbffff, and memory from
0xc0000-0xfffff. On these platforms, we can't map the entire 0-1Mb
range with the same attribute because the memory only supports WB,
while the frame buffer supports only UC. But an mmap of just the
frame buffer should work fine.
(cherry picked from bd0c829654 commit)
Mach64 driver bails out on ia64 because it cannot map device
memory. It turns out that some bogus and unneeded code attempts
to find the root bridge of the device and fails to do so proberly
as there this host-to-pci bridge is not existant. This code has
been around for years although it completely unclear what it had
been intended for. Fixing this by eliminating the bogus code.
(cherry picked from c1828a8ff5 commit)
Without being able to tie these to specific commits, the text changelog is
useless, as well as being huge.
(cherry picked from 430411ae07ad74662e22da70563f757a931c72b9 commit)
Commit b3a3020fd0 used a sparc64 ifdef instead of
sparc. But for 32-bit userland, __sparc64__ is not defined so the wrong code is
used.
(cherry picked from d812f486a0 commit)
CVT reduced blanking modes are typically only seen on digital connections to
LCDs, but there are some monitors that report them as supported over the
VGA connector too, which is perfectly legitimate, electrically speaking.
Well, kinda. Strictly we prefer M_T_BUILTIN strongest since those are modes
where the driver has said it absolutely can't do anything else (VBE). Then
we look for user-defined modes, ie, modelines from the config file. Then
we consider modes reported by the monitor via EDID. Finally if nothing has
matched yet we consider the default mode pool.
Within each of the above-mentioned classes, modes with the M_T_PREFERRED bit
take priority over other modes in the same class.
This logic ensures that the timings sent to the monitor exactly match the
timings it reported as supported, which occasionally don't match the numbers
you might get for that mode from CVT or GTF.
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.
Always add a mouse driver instance configured to send core events, unless
a core pointer already exists using either the mouse or void drivers. This
handles the laptop case where the config file only specifies, say,
synaptics, which causes the touchpad to work but not the pointing stick.
We don't double-instantiate the mouse driver to avoid the mouse moving twice
as fast, and we skip this logic when the user asked for a void core pointer
since that probably means they want to run with no pointer at all.