It took more than 7 months of development, but I finally merged the new TTM memory allocator code into the upstream OpenChrome DRM repository. Actually there were not that many lines of code, but it took some time for me to get used to dealing with TTM, and it was pretty hard figuring out how TTM works. I still do not really like TTM. Also, it took me 2 months figuring out why the X Server was not booting correctly, and during that 2 months, I also spent most of the time for testing and releasing X Server 1.19.7 and cleaning up compilation warnings of several DDXs.
Moving forward, I will start concentrating on the following areas of OpenChrome DRM development.
- Convert via_* labels to openchrome_* (easy, but there is a lot to go through)
- Implement universal plane support for the mouse cursor
- Implement atomic mode setting
Although I have not gone through exhaustive testing, the code stability appears to be about the same as the previous implementation. For example, I was still able to handle dual head configuration on HP 2133 mini-note with the VGA output driving a 1680 x 1050 screen resolution monitor along with the regular 1280 x 768 flat panel. That being said, the current implementation suffers from the hardware cursor getting corrupted from time to time (it goes away if you move the cursor around for several seconds).
The reason why I started implementing my own TTM memory allocator is to start adding KMS (Kernel Mode Setting) support to many PCI / AGP era forgotten, underserved graphics devices, and I plan to reuse the TTM memory allocator code for these devices. If anymore has noticed, I have been going through cleaning up the compilation warnings of many of these graphics devices for a while. Think of this as a preparation work, although I do not necessarily committing to a particular device since I have so many of them I will have to go through.
Anyway, this particular code development held up the OpenChrome DRM development for many months, and now that I am done with it, I plan to go through the above three areas for the next several months, along with implementing another DRM with KMS support.