VGA arbitration: API proposal
Egbert Eich
eich at freedesktop.org
Sat Mar 5 12:56:09 PST 2005
Jesse Barnes writes:
> On Friday, March 4, 2005 3:44 pm, Benjamin Herrenschmidt wrote:
> > Egbert, Jon, any comment ?
> >
> > It could be implemented as a userland library for "default" OSes, that
> > library using kernel facilities (to be written) on OSes that provide
> > them (linux).
> >
> > As far as Linux is concerned, the toggling of VGA access with an
> > in-kernel semaphore to be shared between userland toggle (via sysfs) and
> > internal drivers (vgacon) has to be done, along with some indication (in
> > sysfs too) of the decoding mode of the card as set by the driver (could
> > be set by the kernel driver or by X, I suppose if they have different
> > settings, they can switch it at VT switch time).
>
> Seems to make sense to me--you really do have to introduce the concept of a
> VGA owner for cases where multiple VGA cards share the same bus or legacy
> I/O/mem decode segment. In that sense, it complements the existing
> legacy_io/mem API presented by sysfs.
>
> Might be nice if the vga_set_legacy_decoding routine also returned the
> addresses of legacy I/O and memory space for that card.
>
> This API is needed to properly POST multiple VGA cards per-bus, but it would
> be *really* nice if we could avoid using VGA at all after POSTing has been
> done (i.e. use the fb drivers instead of vgacon, don't use VGA ports from X
> space, etc.). Of course that assumes that the full functionality of every
> display devices that we care about is a proper superset of the functionality
> they provide as VGA services, otherwise we'd be giving something up by
> dropping VGA based services.
>
Unfortunately we can't. There is too much hardware that cannot be
programmed entirely without using VGA resources - at least at some
point. Sometimes it would be theoretically possible but due to
HW bugs it is not.
On modern HW this may not be such a huge issue any more but there
is still enough old stuff around.
Egbert.
More information about the xorg
mailing list