mtk安卓启动动画与drm简解

博客围绕安卓双屏显示展开,使用双屏时发现屏幕点亮不同步,背光操作早于硬件配置。开机动画在Bootanimation中播放,有时会因硬件未准备好点背光失败致黑屏。显示通过gpu的drm bridge方式,建议在open时操作屏幕,此时硬件已准备好。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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时操作屏幕更加合理,因此此时已将硬件准备完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值