DRM系列(9)之drm_atomic_helper_commit
drm_atomic_helper_commit
commit的过程分为两部:
-
异步提交
drm_atomic_helper_prepare_planes
是提交之前最重要的一步,这一步和fb的设置有关。这个函数异步提交一个状态,即不是vblank 同步的。只有在drm_atomic_async_check()成功的情况下,才可以在一个状态上使用。异步提交不应该像正常的同步提交那样交换状态,而只是对当前状态进行就地更改。
-
同步提交
第一步:设置commit的state
第二步:初始化提交worker
第三步:准备planes,设置fb的fence
第四步:交换state
第五步:对于非阻塞提交,启动提交线程,否则直接提交。
int drm_atomic_helper_commit(struct drm_device *dev,