From 3db783a988709db809e3fbea6e4f8ec38b2ee5fa Mon Sep 17 00:00:00 2001 From: Zheng Yang Date: Tue, 14 Apr 2015 22:05:41 +0800 Subject: [PATCH] rk1000: Fix picture error when suspend and switch mode. Signed-off-by: Zheng Yang --- drivers/video/rockchip/tve/rk1000/rk1000_tve.c | 4 ++-- drivers/video/rockchip/tve/rk1000/rk1000_tve_cvbs.c | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/video/rockchip/tve/rk1000/rk1000_tve.c b/drivers/video/rockchip/tve/rk1000/rk1000_tve.c index 483ae0336d1b..a8247e783da7 100755 --- a/drivers/video/rockchip/tve/rk1000/rk1000_tve.c +++ b/drivers/video/rockchip/tve/rk1000/rk1000_tve.c @@ -150,12 +150,12 @@ int rk1000_tv_standby(int type) cvbs = rk1000_tve.cvbs->enable; if (cvbs || ypbpr) return 0; - val = 0x00; +/* val = 0x00; ret = rk1000_control_write_block(0x03, &val, 1); if (ret < 0) { pr_err("rk1000_control_write_block err!\n"); return ret; - } + } */ val = 0x07; ret = rk1000_tv_write_block(0x03, &val, 1); if (ret < 0) { diff --git a/drivers/video/rockchip/tve/rk1000/rk1000_tve_cvbs.c b/drivers/video/rockchip/tve/rk1000/rk1000_tve_cvbs.c index 4e4e503cbae3..79591a487717 100755 --- a/drivers/video/rockchip/tve/rk1000/rk1000_tve_cvbs.c +++ b/drivers/video/rockchip/tve/rk1000/rk1000_tve_cvbs.c @@ -1,5 +1,6 @@ #include #include +#include #include "rk1000_tve.h" @@ -68,6 +69,8 @@ int rk1000_tv_pal_init(void) static int rk1000_cvbs_set_enable(struct rk_display_device *device, int enable) { + unsigned char val; + if (cvbs_monspecs.suspend) return 0; if ((cvbs_monspecs.enable != enable) || @@ -76,8 +79,13 @@ static int rk1000_cvbs_set_enable(struct rk_display_device *device, int enable) cvbs_monspecs.enable = 0; rk1000_tv_standby(RK1000_TVOUT_CVBS); } else if (enable == 1) { + val = 0x07; + rk1000_tv_write_block(0x03, &val, 1); rk1000_switch_fb(cvbs_monspecs.mode, cvbs_monspecs.mode_set); + msleep(600); + val = 0x03; + rk1000_tv_write_block(0x03, &val, 1); cvbs_monspecs.enable = 1; } } -- 2.34.1