
Originally Posted by
bridgman
The kernel DRM will need a full implementation of TTM at minimum (including management of video memory and migration between pools) before it can support our client code. A lot of the features added by TTM & Gallium have been in proprietary drivers for a while. That's one of the reasons I'm saying "let's not have this discussion now".
If it was just "leaving stuff out" that would be OK, but the stuff that stays in pretty much needs to be double-implemented depending on what lower level functions are present. We also need to tamper-proof any of the secure code, and that means everything below needs to be tamper-proofed as well.
If you believe in separate code for separate functions, that argues for separate implementations of the secure/nonsecure paths, and once you do *that* you end up with an open driver which is the collection of nonsecure modules, and a closed driver which is the collection of secure modules. Plus or minus 20%, anyways.
We went through many of these discussions internally, including consideration of various open/closed hybrids, before settling on the current "two driver" plan. I think there are places where we could use open source effectively in fglrx, particularly installation and initialization/startup, but going much further than that starts to put real constraints on what we can do with fglrx in the future.