I am now in the process of compiling the new TTM memory allocator code for OpenChrome DRM. I hope to test the code for the first time by tomorrow. Again, I plan to reuse the code with the future DRM modernization project (i.e., adding Kernel Mode Setting or KMS support) for underserved PCI / AGP graphics devices. That project has stalled for now pending the validation of TTM memory allocator code. It will resume once the code is proven. Things are pretty much going along the lines described in my XDC 2017 OpenChrome Project presentation, except the schedule.
I finished removing the unfinished acceleration code. It was a little harder than I expected it and took a few days, but the code is back to working fine. Now that there is an ABI break, the version of OpenChrome DRM is now Version 3.1.x rather than 3.0.x.
When the code is finally in the Linux kernel mainline tree, I expect the version to be incremented to Version 4.0.x. There will be no acceleration support initially. Version 4.1.x and later should support acceleration.
I am now in the process of integrating my own TTM memory allocator into OpenChrome DRM. I expect this to take a few weeks. I hope to reuse this code with other DRM implementations down the road.
Although it appears from the outside that the development pace of OpenChrome DRM has slowed down considerably over the past few months (i.e., frequency of the code commit into the OpenChrome DRM upstream repository), I have been working on implementing my own implementation of TTM memory allocator since July 2018. After trying out several implementation ideas, I am hoping the current implementation will work out. The code has not even been through compilation yet, and even after this, it may not work right away. I hope to get the TTM memory allocator committed in the next few weeks.
That being said, I was told by the DRM maintainer back in June 2018 that I will need to remove the previous developer, James Simmons, developed unfinished acceleration related code before Linux kernel tree mainlining. The thing is, I do not really like the code quality of the acceleration related code along with the fact that I want more control of the design of the acceleration related code. I now plan to throw out all the unfinished acceleration related code. I am in the process of doing this for the past few days, but due to various interlocking modules of the code present in the OpenChrome DRM, it is taking longer than I hoped.
My plan is to remove all of the unfinished acceleration related code, compile OpenChrome DRM to see if the code is still working fine. After that, I plan to substitute in my own initialization code and header file. Then, I plan to integrate my own TTM memory allocator code with OpenChrome DRM.
I will write more when I have something new to report.