Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83
现象:
主屏使用 4:3 edp, 副屏使用 16:9 HDMI.
双屏异显时,副屏显示画面会被拉伸.
原因:
HDMI可以使用和适应不同的分辨率.
edp的分辨率是2048*1536,符合4:3比例,而HDMI显示的分辨率是1024*768,不是16:9而是4:3的比例.
得到1024*768的原因在于板子没有读取到HDMI的EDID也就是HDMI的分辨率而默认设置成了1024*768,这样显示的分辨率和物理屏幕比例不一致,而画面默认就会被拉伸了.
而EDID读取失败的最终原因是硬件上某个上拉电阻的组织太大导致通讯失败.
读取edid流程:
drm_helper_probe_single_connector_modes_merge_bits-> drm_probe_helper.c
drm_load_edid_firmware //从硬件去读取edid
drm_add_modes_noedid(connector, 1024, 768); -> //如果读取不到就使

在RK3399平台上运行Android 7.1系统,当主屏采用4:3的edp,副屏使用16:9的HDMI时,副屏显示出现画面拉伸。问题源于板子未能正确读取HDMI的EDID,导致分辨率设置错误。通过理解EDID读取流程,可以手动修改drm_add_modes_noedid()函数参数来匹配HDMI分辨率,从而避免画面拉伸。

最低0.47元/天 解锁文章
1295

被折叠的 条评论
为什么被折叠?



