From 927ee7b056dd5bf066cce313ee3e81603beb749d Mon Sep 17 00:00:00 2001 From: hjc Date: Wed, 11 Feb 2015 16:24:34 +0800 Subject: [PATCH] rk31xx lvds: fix lvds grf config error when disable lvds --- drivers/video/rockchip/transmitter/rk31xx_lvds.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/video/rockchip/transmitter/rk31xx_lvds.c b/drivers/video/rockchip/transmitter/rk31xx_lvds.c index c60b971ff599..430e13adf651 100644 --- a/drivers/video/rockchip/transmitter/rk31xx_lvds.c +++ b/drivers/video/rockchip/transmitter/rk31xx_lvds.c @@ -139,13 +139,18 @@ static int rk31xx_lvds_pwr_off(void) static int rk31xx_lvds_disable(void) { struct rk_lvds_device *lvds = rk31xx_lvds; + u32 val; if (unlikely(!lvds) || !lvds->sys_state) return 0; + if (lvds->data->soc_type == LVDS_SOC_RK3368) { + val = v_RK3368_LVDSMODE_EN(0) | v_RK3368_MIPIPHY_TTL_EN(0); + lvds_grf_writel(lvds, GRF_SOC_CON7_LVDS, val); + } else { + grf_writel(v_LVDSMODE_EN(0) | v_MIPIPHY_TTL_EN(0), RK312X_GRF_LVDS_CON0); + } - grf_writel(v_LVDSMODE_EN(0) | v_MIPIPHY_TTL_EN(0), RK312X_GRF_LVDS_CON0); - - rk31xx_lvds_pwr_off(); + rk31xx_lvds_pwr_off(); rk31xx_lvds_clk_disable(lvds); #if !defined(CONFIG_RK_FPGA) -- 2.34.1