rk mipi: fixed the bug of set_bits in rk32_mipi_dsi.c.
[firefly-linux-kernel-4.4.55.git] / drivers / video / rockchip / transmitter / rk610_lcd.c
index e25058d061e579a8591a82362ee39f75c304d612..3b842915ccea3e94b90fcad3ceb921661ef9b22c 100644 (file)
@@ -72,33 +72,40 @@ static void rk610_scaler_disable(struct i2c_client *client)
     rk610_scaler_write_p0_reg(client, SCL_CON0, &c);
 }
 
-static int rk610_output_config(struct i2c_client *client,struct rk29fb_screen *screen,int mode)
+static int rk610_output_config(struct i2c_client *client,struct rk_screen *screen,int mode)
 {
     char c=0;
     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) && defined(CONFIG_HDMI_RK610)
+               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) && defined(CONFIG_HDMI_RK610)
+                   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(0xf) |LVDS_TX_PWR_ENABLE(0xf); 
+                   rk610_scaler_write_p0_reg(client, LVDS_CON1, &c);
              
            }
        }else if(SCREEN_RGB == screen->type){
@@ -114,7 +121,7 @@ static int rk610_output_config(struct i2c_client *client,struct rk29fb_screen *s
        return 0;
 }
 #if defined(CONFIG_HDMI_DUAL_DISP) || defined(CONFIG_ONE_LCDC_DUAL_OUTPUT_INF)
-static int rk610_scaler_pll_set(struct i2c_client *client,struct rk29fb_screen *screen,u32 clkin )
+static int rk610_scaler_pll_set(struct i2c_client *client,struct rk_screen *screen,u32 clkin )
 {
     char c=0;
     char M=0,N=0,OD=0;
@@ -181,7 +188,7 @@ static int  scale_hv_factor(struct i2c_client *client ,u32 Hin_act, u32 Hout_act
        return 0;
    }
 
-static int rk610_scaler_fator_config(struct i2c_client *client ,struct rk29fb_screen *screen)
+static int rk610_scaler_fator_config(struct i2c_client *client ,struct rk_screen *screen)
 {
     switch(screen->hdmi_resolution){
         case HDMI_1920x1080p_60Hz:
@@ -215,7 +222,7 @@ static int rk610_scaler_fator_config(struct i2c_client *client ,struct rk29fb_sc
     }
     return 0;
 }
-static int rk610_scaler_output_timing_config(struct i2c_client *client,struct rk29fb_screen *screen)
+static int rk610_scaler_output_timing_config(struct i2c_client *client,struct rk_screen *screen)
 {
     char c;
     int h_st = screen->s_hsync_st;
@@ -297,7 +304,7 @@ static int rk610_scaler_output_timing_config(struct i2c_client *client,struct rk
        
        return 0;
 }
-static int rk610_scaler_chg(struct i2c_client *client ,struct rk29fb_screen *screen)
+static int rk610_scaler_chg(struct i2c_client *client ,struct rk_screen *screen)
 {
 
     RK610_DBG(&client->dev,"%s screen->hdmi_resolution=%d\n",__FUNCTION__,screen->hdmi_resolution);
@@ -358,7 +365,7 @@ static void rk610_lcd_early_resume(struct early_suspend *h)
     }
 }
 #endif
-int rk610_lcd_scaler_set_param(struct rk29fb_screen *screen,bool enable )//enable:0 bypass 1: scale
+int rk610_lcd_scaler_set_param(struct rk_screen *screen,bool enable )//enable:0 bypass 1: scale
 {
     int ret=0;
     struct i2c_client *client = g_lcd_inf->client;