前段时间小米出现红米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 这个是在高通的私有代码中传过来的。
auto_pan_loop 是所在文件定义的全局变量,在有些高通平台是注释掉的,该变量定义为全局静态变量的好处就是当最开始的do{}while()执行循环的时候该值在一直递增。
接下来介绍另外一个函数 mdss_dsi_read_panel_signature(),这个是高通定义好的读取ID的函数。
调用过程