In the previous post, I mentioned that I will go ahead and implement atomic mode setting for cursor plane. It now appears that I will need to implement atomic mode setting for primary plane (i.e., frame buffer) before this can work. I do not have the atomic mode setting code written for primary plane at this point, so I will have to postpone the work related to atomic mode setting for now.
Instead, I will convert the existing “legacy” KMS (Kernel Mode Setting) code to fully support universal plane. Going back in history (somewhere around 2014 to 2017), this is the orthodox way DRM developers converted their device drivers before supporting atomic mode setting. At least that’s how Intel handled it for i915 DRM back in 2014. For primary plane, this work has been completed a few months ago, but not for cursor plane. After analyzing how DRM core handles cursor plane for the last several days, I wrote the callbacks that handle cursor plane. At this point, the code is not working, but I hope to get the code working in the next few days.