Skip to content

Commit

Permalink
PCI/GPU: implement VGA arbitration on Linux
Browse files Browse the repository at this point in the history
Background:
Graphic devices are accessed through ranges in I/O or memory space. While most
modern devices allow relocation of such ranges, some "Legacy" VGA devices
implemented on PCI will typically have the same "hard-decoded" addresses as
they did on ISA. For more details see "PCI Bus Binding to IEEE Std 1275-1994
Standard for Boot (Initialization Configuration) Firmware Revision 2.1"
Section 7, Legacy Devices.

The Resource Access Control (RAC) module inside the X server currently does
the task of arbitration when more than one legacy device co-exists on the same
machine. But the problem happens when these devices are trying to be accessed
by different userspace clients (e.g. two server in parallel). Their address
assignments conflict. Therefore an arbitration scheme _outside_ of the X
server is needed to control the sharing of these resources. This document
introduces the operation of the VGA arbiter implemented for Linux kernel.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
  • Loading branch information
Benjamin Herrenschmidt authored and Jesse Barnes committed Sep 9, 2009
1 parent 500559a commit deb2d2e
Show file tree
Hide file tree
Showing 8 changed files with 1,461 additions and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/gpu/Makefile
Original file line number Diff line number Diff line change
@@ -1 +1 @@
obj-y += drm/
obj-y += drm/ vga/
10 changes: 10 additions & 0 deletions drivers/gpu/vga/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
config VGA_ARB
bool "VGA Arbitration" if EMBEDDED
default y
depends on PCI
help
Some "legacy" VGA devices implemented on PCI typically have the same
hard-decoded addresses as they did on ISA. When multiple PCI devices
are accessed at same time they need some kind of coordination. Please
see Documentation/vgaarbiter.txt for more details. Select this to
enable VGA arbiter.
1 change: 1 addition & 0 deletions drivers/gpu/vga/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
obj-$(CONFIG_VGA_ARB) += vgaarb.o
Loading

0 comments on commit deb2d2e

Please sign in to comment.