mtk安卓启动动画与drm简解

mtk-drm初始化
mtk-drm commit送显流程(一)

背景

在使用安卓双屏时,发现两个屏幕不是同时点亮的,两个屏幕不是直连到soc的显示接口,是通过ti方案941-948这种方案连接的,需要配置才能显示到屏幕,出现情况是背光操作会早于,配置连接硬件。

开机动画

开机动画是Bootanimation中播放的,是单独的,在安卓很早的时候,与其他的都不相干,不会存在前后顺序,这里是尝试在这里面进行设置属性,属性在rc命令中通过命令进行点亮背光,也就是说Bootanimation直接点背光,与你硬件逻辑没关系。有时候会出现硬件未准备好,进行点背光失败,此时到安卓界面进去前都是黑屏状态。

drm的bridge

显示是通过gpu 的 drm bridge方式,比如电脑的hdmi dp这些都是类似的,就是drm_bridge_funcs 中 pre_enable 和enable,一般在pre_enable 打开芯片的电源,enable进行寄存器配置,CRTC 收到 enable的atomic commit 会进行kernel display pipe init,内核drm架构会把drm_bridge_funcs 初始化为 /dev/dri/card0,安卓会open /dev/dri/card0,然后atomic commit一些配置,然后pqservice 图像质量之类的操作。
至此,控制屏幕背光和图像的位置可以肯定的说,不应当在Bootanimation中,因为你不知道硬件是否准备完好,在open /dev/dri/card0时操作屏幕更加合理,因此此时已将硬件准备完毕。

你可能感兴趣的:(安卓,android,linux)