From: yzq Date: Wed, 26 Jun 2013 05:21:54 +0000 (+0800) Subject: RK610: fix dual screen sleep resume err X-Git-Tag: firefly_0821_release~6965^2~20 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=cfbf2e780f0aa70fe767f3d11f5c21c71f44f10e;p=firefly-linux-kernel-4.4.55.git RK610: fix dual screen sleep resume err --- 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){