VGA Arbiter
Paulo Zanoni
przanoni at gmail.com
Mon Oct 29 11:20:50 PDT 2007
Answers to a few paragraphs:
> Are there also internal kernel interfaces for things like vgacon or
> driver save/restore routines to use?
No, because it is currently a module. But when it was just a patch,
there was an interface. Look at vgaarb.h in the code of the module: it
was the interface for the other parts of the kernel.
> An important function I wanted to have is when a video driver such as
> radeon knows it will only use MMIO and no legacy stuff, it can take
> itself out of the arbitration (take the card out of the arbitration) at
> least until I needs to use legacy stuff again.
You can use the "decodes" to say that you don't decode legacy stuff
and remove yourself out of the arbitration.
> Ok, I had a look at my old code and I'm wondering how it works as a
> module since you need to have the PCI code call
>
> vga_arbiter_add_pci_device()
>
> and
>
> vga_arbiter_del_pci_device()
When someone calls the function "target" we check if the device is
already on the list. If not, then we call vga_arbiter_add_pci_device.
I know this is not the correct way, but it allows us to use it as a
module =). When we go back to a kernel patch we'll be able to do it
correctly. (Tiago says he knows how to do it).
We're using a module because testing kernel modules is way much easier
than testing kernel patches. We're just trying to make a proof of
concept.
And about the repos: it would be good to have a public repo because
everyone would be able to help =)
After we have some good proof of concept we'll send an e-mail to the
lkml to see what they think about it.
Paulo.
More information about the xorg
mailing list