Eliminate xf86GetPciDomain. The domain from libpciaccess is the
domain. Period. This means that 0 is a valid domain. Make sure that
INCLUDE_XF86_NO_DOMAIN is *not* set. Always run in "domain mode,"
even if the only domain possible is 0.
Convert all uses of PCITAG in int10 and vgaHW to 'struct pci_device'.
This allows the conversion of xf86ReadLegacyVideoBIOS and
xf86MapDomainMemory to 'struct pci_device' from PCITAG.
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.
Conflicts:
hw/xfree86/common/xf86Init.c
hw/xfree86/int10/pci.c
hw/xfree86/scanpci/xf86PciData.h
hw/xfree86/scanpci/xf86PciStdIds.h
hw/xfree86/scanpci/xf86PciStr.h
hw/xfree86/scanpci/xf86ScanPci.h
hw/xfree86/utils/pcitweak/pcitweak.c
hw/xfree86/utils/scanpci/scanpci.c
Re-removed most of the conflicting files.
okay? Since xf86MapLegacyIO is called from only one place, cut the
parameter list down to the one parameter that actually conveys some
information: the one that gives a PCI device. Change from using a
PCITAG to a pci_device.
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).