[PATCH 2/2] I/O port access routines
Luc Verhaegen
libv at skynet.be
Thu Nov 19 09:36:12 PST 2009
On Thu, Nov 19, 2009 at 06:36:15PM +0200, Tiago Vignatti wrote:
>
> PCI code was removed (well, it's being) from X and needed be put somewhere.
> libpciaccess was the name of the place. I can imagine how tied and coupled
> such code was with the rest of the server and it was more easy to just
> reimplement some parts. So, it was a decision that someone made.
>
> But the removal of PCI from X was not all the problem; there was also RAC
> which, as I said to you, should be visible from other apps. Given, recently
> kernels are already doing a lot of RAC's job, we decided to just call another
> name - VGA arbiter - and implement only the necessary parts.
>
>
> I don't see why you're complaining so much...
>
>
> Tiago
Oh man... This whole logic, when looked at it by a driver developer who
just wants to have his driver work, is soo interdependent.
Current situation:
* We have to wrap io calls in the driver.
* Why?
* Because we threw out RAC completely.
* Why?
* Because we no longer had VGA arbitration.
* Why?
* Because we daftly threw out the old xserver pci code completely and
reinvented it, and didn't bother to keep existing APIs nor give RAC
support for this new backend code.
* Why did we throw out old pci code?
* Because the lowlevel code was involved and was not using the operating
system infrastructure that popped up "recently".
* Why do it that way?
* Because it's just how we did it, ok? now stfu.
Now i am sure that i am not the only person who frowns upon the logic
applied in there, when it is, finally, laid out like this.
And Tiago, it was not coupled that tightly. It supported just about
every operating system out there at the time (in as far as it supported
operating systems itself), and the driver side interface was not
fundamentally different from what we have now. For reference, you can go
and check any driver that has the compat code.
Code is mostly different for the sake of being different. NIH.
Luc Verhaegen.
More information about the xorg-devel
mailing list