很久之前android刚兴起时候从事battery ,charge驱动顺带着把PMS差不多也看了一遍,最开始看的很多不理解。后来在各家公司经历不同的角色,对PMS这块了解越来越多,也越来越深。特别是前前面搞fingerprint快速亮屏时,修改指纹服务以为PMS逻辑控制,以达到更快的亮屏速。进一步加深了对PMS的理解,目前的我正从事高通平台LCD驱动开发工作,由于遇到一个LCD下电时序的问题,与surfaceflinger和PMS再次打交道,这里就记录下个人对PMS如何对LCD进行正电控制的,这里大体可以分四层
1.framework层逻辑控制,最终调用native方法与surfaceflinger进行通信
2.jni获取surfaceflinger服务与surfaceflinger进行通信,而surfaceflinger又通过HWC与hardware层的compose服务进行通信
3.composer服务层通过节点访问驱动,写入blank,unblank命令
4.驱动层LCD收到上下电命令,进行背光IC,偏压IC,mipi(HS,LP),lcd的上下电的时序控制
由于驱动各家实现方案都不太一样,差异比较大。