From cfbf2e780f0aa70fe767f3d11f5c21c71f44f10e Mon Sep 17 00:00:00 2001 From: yzq Date: Wed, 26 Jun 2013 13:21:54 +0800 Subject: [PATCH] RK610: fix dual screen sleep resume err --- .../video/rockchip/transmitter/rk610_lcd.c | 45 +++++++++++-------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/drivers/video/rockchip/transmitter/rk610_lcd.c b/drivers/video/rockchip/transmitter/rk610_lcd.c index e25058d061e5..a9da5d153951 100644 --- a/drivers/video/rockchip/transmitter/rk610_lcd.c +++ b/drivers/video/rockchip/transmitter/rk610_lcd.c @@ -78,27 +78,34 @@ static int rk610_output_config(struct i2c_client *client,struct rk29fb_screen *s RK610_DBG(&client->dev,"%s \n",__FUNCTION__); if(SCREEN_LVDS == screen->type){ if(mode == LCD_OUT_SCL || mode == LCD_OUT_BYPASS){ - c = LVDS_OUT_CLK_PIN(0) |LVDS_OUT_CLK_PWR_PIN(1) |LVDS_PLL_PWR_PIN(0) \ - |LVDS_LANE_IN_FORMAT(DATA_D0_MSB) \ - |LVDS_OUTPUT_FORMAT(screen->lvds_format) | LVDS_BIASE_PWR(1); - #if defined(CONFIG_DUAL_LCDC_DUAL_DISP_IN_KERNEL) - c |= LVDS_INPUT_SOURCE(FROM_LCD1); - #else - c |= LVDS_INPUT_SOURCE(FROM_LCD0_OR_SCL); - #endif - rk610_scaler_write_p0_reg(client, LVDS_CON0, &c); - c = LCD1_OUT_ENABLE(LCD1_AS_IN); - rk610_scaler_write_p0_reg(client, LCD1_CON, &c); - c = LVDS_OUT_ENABLE(0x0) |LVDS_TX_PWR_ENABLE(0x0); - rk610_scaler_write_p0_reg(client, LVDS_CON1, &c); + c = LVDS_OUT_CLK_PIN(0) |LVDS_OUT_CLK_PWR_PIN(1) |LVDS_PLL_PWR_PIN(0) \ + |LVDS_LANE_IN_FORMAT(DATA_D0_MSB) \ + |LVDS_OUTPUT_FORMAT(screen->lvds_format) | LVDS_BIASE_PWR(1); +#if defined(CONFIG_DUAL_LCDC_DUAL_DISP_IN_KERNEL) + c |= LVDS_INPUT_SOURCE(FROM_LCD1); +#else + c |= LVDS_INPUT_SOURCE(FROM_LCD0_OR_SCL); +#endif + rk610_scaler_write_p0_reg(client, LVDS_CON0, &c); + c = LCD1_OUT_ENABLE(LCD1_AS_IN); + rk610_scaler_write_p0_reg(client, LCD1_CON, &c); + c = LVDS_OUT_ENABLE(0x0) |LVDS_TX_PWR_ENABLE(0x0); + rk610_scaler_write_p0_reg(client, LVDS_CON1, &c); } else{ - c = LVDS_OUT_CLK_PIN(0) |LVDS_OUT_CLK_PWR_PIN(0) |LVDS_PLL_PWR_PIN(1) \ - |LVDS_LANE_IN_FORMAT(DATA_D0_MSB) |LVDS_INPUT_SOURCE(FROM_LCD0_OR_SCL) \ - |LVDS_OUTPUT_FORMAT(screen->lvds_format) | LVDS_BIASE_PWR(0); - rk610_scaler_write_p0_reg(client, LVDS_CON0, &c); - c = LVDS_OUT_ENABLE(0xf) |LVDS_TX_PWR_ENABLE(0xf); - rk610_scaler_write_p0_reg(client, LVDS_CON1, &c); + c = LVDS_OUT_CLK_PIN(0) |LVDS_OUT_CLK_PWR_PIN(0) |LVDS_PLL_PWR_PIN(1) \ + |LVDS_LANE_IN_FORMAT(DATA_D0_MSB) \ + |LVDS_OUTPUT_FORMAT(screen->lvds_format) | LVDS_BIASE_PWR(0); +#if defined(CONFIG_DUAL_LCDC_DUAL_DISP_IN_KERNEL) + c |= LVDS_INPUT_SOURCE(FROM_LCD1); +#else + c |= LVDS_INPUT_SOURCE(FROM_LCD0_OR_SCL); +#endif + c = LCD1_OUT_ENABLE(LCD1_AS_IN); + rk610_scaler_write_p0_reg(client, LCD1_CON, &c); + rk610_scaler_write_p0_reg(client, LVDS_CON0, &c); + c = LVDS_OUT_ENABLE(0xf) |LVDS_TX_PWR_ENABLE(0xf); + rk610_scaler_write_p0_reg(client, LVDS_CON1, &c); } }else if(SCREEN_RGB == screen->type){ -- 2.34.1