Re: radeon-pre-2

Alan Cox
2004-09-10T23:03:02Z

On Gwe, 2004-09-10 at 23:19, Dave Airlie wrote:
> If the kernel developers can address this point I would be most
> interested, in fact I don't want to hear any more about sharing lowlevel
> VGA device drivers until someone addresses why it is acceptable to have
> two separate driver driving the same hardware for video and not for
> anything else.. (remembering graphics cards are not-multifunction cards -
> like Christoph used as an example before - 2d/3d are not separate
> functions...)...

We've addressed this before. Zillions of drivers provide multiple
functions to multiple higher level subsystems. They don't all have to
be compiled together to make it work.

2D and 3D _are_ to most intents and purposes different functions. They
are as different as IDE CD and IDE disk if not more so.

> something worthy of multiple PhDs (maybe I'll go back to college), Ians
> work is going to exist mainly in userspace using the DRM for paging things
> and locking, I think the only way we can really do this is with a simple
> fb memory manager in the kernel that the userspace one overrides and then
> tells the fb drivers the new settings - and the fb drivers use those
> settings until told otherwise..

The memory manager is a later problem. Yes you need minimal memory
management in kernel but you have to put the pieces together in a sane
way *first*. Having a vga class device is easy. It fixes up your
multiple pci device registration problem, it allows DRI/fbdev
co-existance, it fixes hotplugging. It's about using the kernel tools we
already have and implementing it the way the kernel wants to think. If
you fight the kernel you get a mess, if you move with it then it ends up
where you want it. Kind of like Aikido source management.

The basics I have provide (well they crash but they will provide) the
equivalent of pci_register_* for video and DRI modules. Notifiers for
use between the two and an ability to find one from the other.

Once you have that then you can begin plugging in crap like memory
managers for those cases you need it kernel side.

Alan