Commit Graph

123 Commits

Author SHA1 Message Date
Ian Romanick
ab7a6d860d Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into pci-rework
Conflicts:

	hw/xfree86/os-support/bus/Pci.c
	hw/xfree86/os-support/bus/linuxPci.c
2007-06-18 16:51:13 -07:00
David Nusinow
6bf8d50193 Read ROM in chunks
This patch speeds up reads of the ROM by reading in large chunks rather
than one byte at a time. This patch was by Dann Frazier.
2007-05-28 21:42:10 -04:00
Matthias Hopf
ebaa6c920c Disable Simba PCI bridge routing code (Bug #8020).
The code in hw/xfree86/os-support/bus/sparcPci.c:simbaCheckBus()
is trying to mimmick VGA routing by disabling I/O space responses
behind the Simba PCI-PCI controller.

Unfortunately, doing this also happens to disable access to the
IDE controller I/O space registers, thus crashing the system.  The
granularity of the I/O disabling in the Simba controller is not
fine enough to disable VGA without also disabling the IDE controller
registers.
2007-05-10 15:25:31 +02:00
Adam Jackson
d322608dc9 Fix a buffer overrun on machines with excessively large PCI busses.
Formerly we sized an array with a compile time constant, then initialized
its size to the same constant, but the Linux PCI init code would increase
that "constant".  So if you happened to have more than 128 PCI devices,
you'd happily scribble into whatever variables happened to be in .bss
after that array.

Only really fixed for Linux atm.  Other OSes will simply (still) fail to
work on video devices above the 128th PCI device.
2007-04-25 16:29:48 -04:00
Adam Jackson
67e1c98895 Look for the PCI ROM file elsewhere in sysfs.
/sys/devices reflects the bus topology, and we don't care that much.
Easier (and more reliable) to just look in /sys/bus/pci/devices, which
is a flat view.
2007-04-09 19:08:52 -04:00
Ian Romanick
2c6d471088 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into pci-rework
Conflicts:

	hw/xfree86/Makefile.am
	hw/xfree86/dri/dri.c
2007-03-28 08:08:04 -07:00
Jay Estabrook
a16360733e Fix root bus/domain selection on alpha 2007-02-25 21:00:25 +00:00
Ian Romanick
e540d572c5 Merge fix missed on previous commit. 2007-02-14 15:38:10 -08:00
Ian Romanick
3814862a86 Merge branch 'master' of ssh+git://idr@git.freedesktop.org/git/xorg/xserver into pci-rework
Conflicts:

	hw/xfree86/os-support/bus/linuxPci.c
2007-01-29 15:14:31 -08:00
Jonathan Lim
1627af5449 Call linuxPciOpenFile() for r/w access if applicable.
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
2007-01-26 13:00:45 +01:00
Ian Romanick
24506ea65b Move xf86ReadLegacyBIOS to the one place that uses it.
xf86ReadLegacyBIOS is only used by one function in int10/generic.c.
Move a generic implementation of that function there, rename it to
read_legcay_BIOS, and delete all remnants of it from all other places.
2007-01-24 15:33:49 -08:00
Ian Romanick
637b19b3ee Eliminate pciControlBridge, pciGetBridgeBuses, and pciGetBridgeResources. 2007-01-22 09:58:33 -08:00
Ian Romanick
a232e4ae93 Convert xf86GetPciHostConfigFromTag to get_parent_bridge.
Convert xf86GetPciHostConfigFromTag to a new function called
get_parent_bridge.  This name better represents what
xf86GetPciHostConfigFromTag is used for:  walking up the lists of PCI
bridges from a device.
2007-01-22 09:16:45 -08:00
Ian Romanick
844560a02f Elminiate ARCH_PCI_OS_INIT.
Never, ever use the ix86Pci stuff on Linux.  This renders the whole
ARCH_PCI_OS_INIT mechanism useless.  Remove it.
2007-01-22 09:13:59 -08:00
Ian Romanick
780b55ec6f Fix accidental commit (bug) in linuxOpenLegacy. 2007-01-15 15:30:16 -08:00
Ian Romanick
31bd8d1507 Fix domain insanity.
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.
2007-01-15 15:19:30 -08:00
Ian Romanick
1c326bf75f Eliminate unused INCLUDE_XF86_MAP_PCI_MEM define. 2007-01-12 12:07:19 -08:00
Ian Romanick
1a493509e3 Fix typos in conditionally compiled code. 2007-01-12 10:58:59 -08:00
Ian Romanick
8279444a54 Eliminate unused pciAddrHostToBus infrastructure. 2007-01-12 10:41:03 -08:00
Ian Romanick
e32fa10a04 Remove prototype for pciGetBaseSize. 2007-01-12 10:33:17 -08:00
Ian Romanick
7411f5c389 Eliminate pciHostAddrToBusAddr from interface.
pciHostAddrToBusAddr is no longer used anywhere in the tree.  Remove
it with extreme prejudice.
2007-01-12 10:32:04 -08:00
Ian Romanick
c3016a2996 Missed file from previous commit.
Convert xf86ReadLegacyVideoBIOS to take a 'struct pci_device *'
parameter instead of a PCITAG.
2007-01-12 09:56:00 -08:00
Ian Romanick
ca9c41e09d Convert int10 and vgaHW to use 'struct pci_device' instead of PCITAG.
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.
2007-01-11 21:09:20 -08:00
Ian Romanick
e1f73d2208 Merge branch 'master' of ssh+git://idr@git.freedesktop.org/git/xorg/xserver into pci-rework
Conflicts:

	hw/xfree86/common/xf86Configure.c
	hw/xfree86/common/xf86Helper.c
	hw/xfree86/common/xf86pciBus.c
	hw/xfree86/int10/helper_exec.c
	hw/xfree86/os-support/bus/Pci.c
	hw/xfree86/os-support/bus/linuxPci.c
	hw/xfree86/os-support/linux/lnx_pci.c
	hw/xfree86/scanpci/Makefile.am
	hw/xfree86/utils/pcitweak/Makefile.am
	hw/xfree86/utils/scanpci/Makefile.am
2006-12-08 17:24:15 -08:00
Eric Anholt
b4b0d901d9 Merge branch 'randr-1.2'
Conflicts:

	dix/events.c
	dix/getevents.c
	hw/xfree86/common/xf86Mode.c
	hw/xfree86/dri/Makefile.am
	hw/xfree86/os-support/drm/xf86drm.c
	hw/xfree86/os-support/xf86drm.h
2006-11-27 15:43:15 -08:00
Bjorn Helgaas
ae3c9ad4ab Bug 9041: Check the return code in xf86MapDomainMemory(). 2006-11-16 17:29:06 +01:00
Keith Packard
20e9144c07 Add $(DIX_CFLAGS) to remaining Makefile.am files 2006-11-07 12:49:28 -08:00
Bjorn Helgaas
bd0c829654 Do not map full 0-1MB legacy range
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.
2006-11-03 18:59:52 +01:00
Egbert Eich
c1828a8ff5 Fixing mach64 driver bailing out on ia64
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.
2006-11-03 18:59:52 +01:00
Matthias Hopf
d50fc413b3 Fix device path in altixPCI.c to be domain aware. 2006-11-03 18:59:52 +01:00
Matthias Hopf
1d731fc54a Add domain support to linuxPciOpenFile().
Loosely based on patch from David S. Miller <davem@davemloft.net>
See also bug #2368.
2006-11-03 18:59:51 +01:00
Matthias Hopf
caaa113acf Fixing domain support for ia64
ia64 specific functions + defines.
Still uses /proc interface for some scaning code.
Based on code from Egbert Eich <eich@freedesktop.org>.
2006-11-03 18:59:51 +01:00
Matthias Hopf
5afc6c1a14 Added linux 2.6 compatible domain aware device scanning code.
Additional scanning code uses the /sys interface of 2.6 kernels.
Cleaned up the use of tags and already split domain/bus/dev/fn.
2006-11-03 18:59:51 +01:00
Matthias Hopf
f4dd2665b0 Added missing domain stripping in already domain aware code. 2006-11-03 18:59:51 +01:00
Ian Romanick
27d682fa03 Fix from HEAD accidentally reverted during merge. 2006-10-24 09:04:14 -07:00
Ian Romanick
8b90913566 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into pci-rework
Conflicts:

	hw/xfree86/Makefile.am
	hw/xfree86/common/xf86.h
	hw/xfree86/common/xf86DoScanPci.c
	hw/xfree86/os-support/bus/linuxPci.c
	hw/xfree86/scanpci/extrapci.ids
	hw/xfree86/scanpci/pci.ids
	hw/xfree86/scanpci/pciid2c.pl
	hw/xfree86/scanpci/xf86PciStdIds.h
2006-10-24 08:57:59 -07:00
Matthias Hopf
1b94c117e0 Fixing probably long-standing bug in domain support. 2006-10-10 19:37:22 +02:00
Donnie Berkholz
d812f486a0 Really fix sparc on 64-bit kernel/32-bit userland.
Commit b3a3020fd0 used a sparc64 ifdef instead of
sparc. But for 32-bit userland, __sparc64__ is not defined so the wrong code is
used.
2006-09-20 15:39:39 -07:00
Jesse Barnes
b3a3020fd0 the new PCI mapping routines are broken on sparc64 (in fact they look
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.
2006-09-10 11:13:18 -07:00
Ian Romanick
5508f7646f Remove prototypes from some functions that were previously removed. 2006-08-08 16:43:31 -07:00
Ian Romanick
9df53d903e Rename xf86ReadDomainMemory to xf86ReadLegacyVideoBIOS, since that's
what it is actually used for.  Modify a few routines in linuxPci.c to
take pci_device structures as parameters in stead of PCITAGs.
2006-08-08 16:42:23 -07:00
Ian Romanick
5bfb2ee965 Remove the last remants of the pci{Read,Write}{Long,Word,Byte}
functionality.  This also allows the removal of PCI_CPU, PCI_CPU16,
and a few other dangling bits of cruft.
2006-08-02 13:29:21 -07:00
Ian Romanick
23f44df900 Remove pciConfigPtr and all of the associated cruft. 2006-08-02 09:55:32 -07:00
Ian Romanick
a94176627c Eliminate all uses of the businfo field of pciDevice / pciConfigPtr. 2006-07-31 14:33:58 -07:00
Ian Romanick
28ba8d5691 Gut anything having to do with the PciBusPtr (or PciBusRec) type.
Bump required version of libpciaccess to 0.5.0 so that
pci_device_get_bridge_buses can be used.
2006-07-25 15:38:09 -07:00
Ian Romanick
380b51d605 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into pci-rework
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.
2006-07-25 11:30:04 -07:00
Ian Romanick
2fd6b995ff Global s/xf86MapDomainIO/xf86MapLegacyIO/. Let's call a duck a duck,
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.
2006-07-24 13:33:34 -07:00
Ian Romanick
aed6fe0bb1 Refactor linuxGetSizesStruct to take a pci_device pointer instead of a
PCITAG.  Modify xf86BusAccWindowsFromOS and xf86AccResFromOS to call
linuxGetSizesStruct directly with a pci_device pointer.  Remove
linuxGetSizes.
2006-07-24 13:13:05 -07:00
Ian Romanick
e487627992 Modify xf86BusAccWindowsFromOS and xf86AccResFromOS to use the
libpciaccess interfaces.
2006-07-24 12:23:23 -07:00
Ian Romanick
4b474cbc1a The functions xf86PciBusAccWindowsFromOS and xf86BusAccWindowsFromOS
are identical.  Just have one call the other.
2006-07-24 12:17:27 -07:00