[RK3399][Android7.1] 调试笔记 --- 显示画面出现mirror的问题

Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83

现象:
添加好LVDS屏幕之后,显示画面mirror.

[RK3399][Android7.1] 调试笔记 --- 显示画面出现mirror的问题_第1张图片


解决方法:

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 087034d..fab5671 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
 
@@ -1956,6 +1957,8 @@ static void vop_crtc_enable(struct drm_crtc *crtc)
 			!!(s->output_flags & ROCKCHIP_OUTPUT_DSI_DUAL_CHANNEL));
 		VOP_CTRL_SET(vop, data01_swap,
 			!!(s->output_flags & ROCKCHIP_OUTPUT_DSI_DUAL_LINK));
+		//Kris, 191113, mirror display.
+		VOP_CTRL_SET(vop, xmirror, 1);
 		break;
 	case DRM_MODE_CONNECTOR_DisplayPort:
 		VOP_CTRL_SET(vop, dp_dclk_pol, 0);

一开始修改的是vop_plane_atomic_update()中的xmirror信息,发现只是开机动画正常了,但是进入桌面还是异常。
原因是vop_plane_atomic_update()不是控制所有图层,而开机动画只有一个图层,进入桌面之后有多个图层。而通过VOP_CTRL_SET()可以去控制所有图层合成之后的数据。

你可能感兴趣的:(RK3399,子类__Display)