Currently, the call to linuxPciOpenFile() is always made for read
only access which causes the subsequent mmap call to fail when the
memory is mapped read/write.
Xorg #9692
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.
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.
broken for any 32 bit X server running on a 64 bit kernel) so #ifdef
them out for now. the PCI rework tree will make all this crap go away,
so I think we can tolerate the extra #ifdef for the next release.
Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings.
Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all
source files in the xserver/xorg tree, predicated on defines of
HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to
<X11/fonts/foo.h>.
permissions when no access to HW registers is required. For API changes
which mostly involve the modifications to make the RRFunc (introduced
with 6.8) more flexible please check Bugzilla #2407. NOTE: This patch
applies changes to OS specific files for other OSes which I cannot
test.
Avoid PIO access on IA64. Some IA64 machine check if legacy ports outside
the VGA range are accessed. The ATi driver however does this to probe
for ISA Mach8/32/64. Since no IA64 has ISA slots this restriction
should not be relevant to the user.
Avoid recursive calls of xf86scanpci(). This function normally detects that
it has been called before by checking if the PCI structure is filled
out. So far if this was not the case (because PCI probing has failed
for some reason) the function is traversed again. With the chipset
specific PCI bus probing this can lead to an endless recursive loop as
the post-probing code calls xf86scanpci() from within this function.
The OS specific PCI code for Linux worked only if bus 0 was populated as it
checked for the presence of /proc/bus/pci/00. Fixed to check for
/proc/bus/pci/<bus_to_look_for> instead.
IA64 (Egbert Eich).
Fixed wrong function prototype (Egbert Eich).
Don't test for generic VGA on IA64 (Egbert Eich).
Fixed a segfault when accessing a structure before verifying the pointer
exists (Egbert Eich).
Added a showcache option for debugging (Egbert Eich).
Increase default video RAM size to 16MB when DRI is enabled and more than
128MB are available (Egbert Eich). Fixed lockups during mode switch.
Problem was introduced when attempting to copy the behavior during
LeaveVT()/EnterVT() but but forgetting to call I810DRILeave() before
I810DRIEnter(). The entire DRILeave()/Enter() scenario has been
commented out as it didn't seem to be necessary (Egbert Eich).
Fix TweakMemorySize() (tested with i855/i865) (Egbert Eich).
increased MAX_DEVICES to 128 (Egbert Eich).
Use OS provided PCI config space access as default method (Egbert Eich).
Added support for Linux 2.6 proc file format.
Fixed unaligned accesses to pieces of the VBE info block. VESA did not
align elements to size (Egbert Eich).