测试mdp的性能,屏幕成本很高
如何构建虚拟dp?
1.kernel打通覆盖dpcd以及edid的节点
2.正确的dpcd以及edid输入
对于1,
需要修改源码,简单的思路是创建一个sys节点,暴露dpcp以及edid的节点,顺便需要暴露hot-plug的节点。
这样就可以先改好dpcd以及edid,然后模拟hot-plug,保证在hot-plug执行的时候读取预先写入edid以及dpcd。
对于2,
正确的dpcd,一般我们修改最多的就是lane的数量以及lane的最大传输速率;修改dpcd主要影响link-training,实际上我遇到最多的就是link-traning的时候,电压和增益不匹配;link training的voltage level和pre-emphsis level需要组合尝试。参考dp spec。1.3版本https://download.csdn.net/download/u012839187/12793610
正确的edid,一般我们修改timing为主;如果分辨率小于4096,那么只需要改basic-edid即可,如果分辨率大于4096,那么就需要edid-extension,displayid,也就是以0x70开口的extension数据块。
验证,
是否成功的办法是查看/sys节点以及尝试使用