~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to Documentation/vgaarbiter.txt

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
than one legacy device co-exists on the same machine. But the problem happens
15
15
when these devices are trying to be accessed by different userspace clients
16
16
(e.g. two server in parallel). Their address assignments conflict. Moreover,
17
 
ideally, being an userspace application, it is not the role of the the X
18
 
server to control bus resources. Therefore an arbitration scheme outside of
19
 
the X server is needed to control the sharing of these resources. This
20
 
document introduces the operation of the VGA arbiter implemented for Linux
21
 
kernel.
 
17
ideally, being a userspace application, it is not the role of the X server to
 
18
control bus resources. Therefore an arbitration scheme outside of the X server
 
19
is needed to control the sharing of these resources. This document introduces
 
20
the operation of the VGA arbiter implemented for the Linux kernel.
22
21
 
23
22
----------------------------------------------------------------------------
24
23
 
39
38
The vgaarb is a module of the Linux Kernel. When it is initially loaded, it
40
39
scans all PCI devices and adds the VGA ones inside the arbitration. The
41
40
arbiter then enables/disables the decoding on different devices of the VGA
42
 
legacy instructions. Device which do not want/need to use the arbiter may
 
41
legacy instructions. Devices which do not want/need to use the arbiter may
43
42
explicitly tell it by calling vga_set_legacy_decoding().
44
43
 
45
44
The kernel exports a char device interface (/dev/vga_arbiter) to the clients,
95
94
notify them being added/removed in the system and automatically added/removed
96
95
in the arbiter.
97
96
 
98
 
There's also a in-kernel API of the arbiter in the case of DRM, vgacon and
99
 
others which may use the arbiter.
 
97
There is also an in-kernel API of the arbiter in case DRM, vgacon, or other
 
98
drivers want to use it.
100
99
 
101
100
 
102
101
I.2 libpciaccess
117
116
    struct pci_device *vga_default_dev;
118
117
 
119
118
 
120
 
The vga_count is usually need to keep informed how many cards are being
121
 
arbitrated, so for instance if there's only one then it can totally escape the
122
 
scheme.
 
119
The vga_count is used to track how many cards are being arbitrated, so for
 
120
instance, if there is only one card, then it can completely escape arbitration.
123
121
 
124
122
 
125
123
These functions below acquire VGA resources for the given card and mark those