高通平台msm8909 LK 实现LCD 兼容

时间:2022-05-04 15:08:32

前段时间小米出现红米note2 换屏门,现在我们公司也要上演了;有两个供应商提供不同IC 的LCD panel。

软件区分的办法是读取LCD IC 的ID 寄存器,下面解析高通平台LK中LCD兼容的过程。

废话不多说了直接从   target_display_init() .第一次开代码时不理解为什么会有 do{}  while(),这就是高通原生lkLCD 兼容的关键所在。至于你需要兼容多少LCD 就在while()设置了,具体代码就不跟下去了。

gcdb_display_init () 在该函数中有一个重要的函数就是 oem_panel_select(),该函数就是根据你的hw_id 确定使用哪一款LCD,hw_id 这个是在高通的私有代码中传过来的。

高通平台msm8909 LK 实现LCD 兼容

auto_pan_loop 是所在文件定义的全局变量,在有些高通平台是注释掉的,该变量定义为全局静态变量的好处就是当最开始的do{}while()执行循环的时候该值在一直递增。

接下来介绍另外一个函数 mdss_dsi_read_panel_signature(),这个是高通定义好的读取ID的函数。

高通平台msm8909 LK 实现LCD 兼容

调用过程