static int mdss_dsi_panel_on(struct mdss_panel_data *pdata) { struct mdss_dsi_ctrl_pdata *ctrl = NULL; #if defined(CONFIG_ESD_ERR_FG_RECOVERY) static int first_boot = 1; #endif msd.mfd = (struct msm_fb_data_type *)registered_fb[0]->par; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return -EINVAL; } msd.mpd = pdata; ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); printk("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx); if (ctrl->on_cmds.cmd_cnt) mdss_dsi_panel_cmds_send(ctrl, &ctrl->on_cmds); msd.mfd->resume_state = MIPI_RESUME_STATE; #if defined(CONFIG_MDNIE_LITE_TUNING) || defined(CONFIG_MDNIE_VIDEO_ENHANCED) is_negative_on(); #endif #if defined(CONFIG_BACKLIGHT_IC_KTD2801) mdelay(2); if (gpio_is_valid(msd.bl_ap_pwm)) { gpio_tlmm_config(GPIO_CFG(msd.bl_ap_pwm,3, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE); } if((fisrt_boot_bl==1) && (lcd_connected_status ==1)){ #ifdef EXPRESSWIRED ktd_backlight_set_brightness(BL_MAX_BRIGHTNESS_LEVEL); #else mdss_dsi_panel_bklt_pwm(BL_MAX_BRIGHTNESS_LEVEL); #endif fisrt_boot_bl=0; } #endif #if defined(CONFIG_ESD_ERR_FG_RECOVERY) if(first_boot) { int rc; INIT_WORK(&err_fg_work, err_fg_work_func); rc = request_threaded_irq(err_fg_gpio, NULL, err_fg_irq_handler, IRQF_TRIGGER_LOW | IRQF_ONESHOT, "esd_detect", NULL); if (rc) { pr_err("%s : Failed to request_irq. :ret=%d", __func__, rc); } first_boot = 0; } enable_irq(err_fg_gpio); #endif pr_err("%s:-\n", __func__); return 0; }
static void mdss_dsi_panel_bl_ctrl(struct mdss_panel_data *pdata, u32 bl_level) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return; } ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); switch (ctrl_pdata->bklt_ctrl) { case BL_WLED: #if defined(CONFIG_BACKLIGHT_LM3630) lm3630_lcd_backlight_set_level(bl_level); #else led_trigger_event(bl_led_trigger, bl_level); #endif break; case BL_PWM: mdss_dsi_panel_bklt_pwm(ctrl_pdata, bl_level); break; case BL_DCS_CMD: mdss_dsi_panel_bklt_dcs(ctrl_pdata, bl_level); break; default: pr_err("%s: Unknown bl_ctrl configuration\n", __func__); break; } }
static void mdss_dsi_panel_bl_ctrl(struct mdss_panel_data *pdata, u32 bl_level) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return; } ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); switch (ctrl_pdata->bklt_ctrl) { case BL_WLED: led_trigger_event(bl_led_trigger, bl_level); break; case BL_PWM: mdss_dsi_panel_bklt_pwm(ctrl_pdata, bl_level); break; default: pr_err("%s: Unknown bl_ctrl configuration\n", __func__); break; } }
static void mdss_dsi_panel_bl_ctrl(struct mdss_panel_data *pdata, u32 bl_level) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return; } ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); #ifdef CONFIG_SHLCDC_BOARD /* CUST_ID_00010 */ mdss_shdisp_bkl_ctl(bl_level); #else // for Debug switch (ctrl_pdata->bklt_ctrl) { case BL_WLED: led_trigger_event(bl_led_trigger, bl_level); break; case BL_PWM: mdss_dsi_panel_bklt_pwm(ctrl_pdata, bl_level); break; case BL_DCS_CMD: mdss_dsi_panel_bklt_dcs(ctrl_pdata, bl_level); break; default: pr_err("%s: Unknown bl_ctrl configuration\n", __func__); break; } #endif /* CONFIG_SHLCDC_BOARD */ }
static void mdss_dsi_panel_bl_ctrl(struct mdss_panel_data *pdata, u32 bl_level) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; #ifdef CONFIG_OLED_SUPPORT struct mipi_panel_info *mipi; mipi = &pdata->panel_info.mipi; #endif if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return; } ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); switch (ctrl_pdata->bklt_ctrl) { case BL_WLED: #if defined(CONFIG_BACKLIGHT_LM3630) lm3630_lcd_backlight_set_level(bl_level); #else led_trigger_event(bl_led_trigger, bl_level); #endif break; case BL_PWM: mdss_dsi_panel_bklt_pwm(ctrl_pdata, bl_level); break; case BL_DCS_CMD: #ifdef CONFIG_OLED_SUPPORT if (mipi->mode == DSI_VIDEO_MODE) { if (bl_level > 0xFF) bl_level = 0xFF; } else { pr_err("%s:%d, CMD MODE NOT SUPPORTED", __func__, __LINE__); return; } #endif mdss_dsi_panel_bklt_dcs(ctrl_pdata, bl_level); break; default: pr_err("%s: Unknown bl_ctrl configuration\n", __func__); break; } }
static void mdss_dsi_panel_bl_ctrl(struct mdss_panel_data *pdata, u32 bl_level) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return; } ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); if (!get_panel_power_state()) { pr_info("%s : get_panel_power_state off", __func__); return; } pr_info("%s : bl_level = %d\n", __func__, bl_level); if(bl_level) bl_backup = bl_level; bl_level = (DOWN_COEF_VALUE * bl_level) / left_back_up_data->bklt_max; pr_info("%s : Actual bl_level = %d\n", __func__, bl_level); switch (left_back_up_data->bklt_ctrl) { case BL_WLED: led_trigger_event(bl_led_trigger, bl_level); break; case BL_PWM: mdss_dsi_panel_bklt_pwm(left_back_up_data, bl_level); break; case BL_DCS_CMD: pr_debug("%s : dsi index = %d\n", __func__, ctrl_pdata->ndx); mdss_dsi_panel_bklt_dcs(ctrl_pdata, bl_level); break; default: pr_err("%s: Unknown bl_ctrl configuration\n", __func__); break; } }
static void mdss_dsi_panel_bl_ctrl(struct mdss_panel_data *pdata, u32 bl_level) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; #if defined(CONFIG_BACKLIGHT_IC_KTD253) static int bl_level_old; #endif #if defined(CONFIG_FB_MSM8x26_MDSS_CHECK_LCD_CONNECTION) if (get_samsung_lcd_attached() == 0) { printk("%s: LCD not connected!\n",__func__); #if defined(CONFIG_BACKLIGHT_IC_KTD2801) gpio_set_value(msd.bl_ap_pwm,0); #else gpio_set_value(12, 0); #endif return; } #endif if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return; } if( msd.mfd->panel_power_on == false){ pr_err("%s: panel power off no bl ctrl\n", __func__); return; } #if defined(CONFIG_ESD_ERR_FG_RECOVERY) if (err_fg_working) { pr_info("[LCD] %s : esd is working!! return.. \n", __func__); return; } #endif ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); switch (ctrl_pdata->bklt_ctrl) { case BL_WLED: led_trigger_event(bl_led_trigger, bl_level); break; case BL_PWM: #if defined(CONFIG_BACKLIGHT_IC_KTD2801) #ifdef EXPRESSWIRED ktd_backlight_set_brightness(bl_level); #else pr_err("[MINO] %s --> bl_level[1] : %d\n",__func__, bl_level ); bl_level=mdss_dsi_panel_pwm_scaling(bl_level); mdss_dsi_panel_bklt_pwm(bl_level); pr_err("[MINO] %s --> bl_level[2] : %d\n",__func__, bl_level ); #endif #else mdss_dsi_panel_bklt_pwm(ctrl_pdata, bl_level); #endif break; case BL_DCS_CMD: mdss_dsi_panel_bklt_dcs(ctrl_pdata, bl_level); break; case BL_GPIO_SWING: #if defined(CONFIG_BACKLIGHT_IC_KTD253) if (bl_level_old == bl_level) return; pr_err("%s: bl_level = %d\n",__func__,bl_level); ktd253_set_brightness(get_candela_index(bl_level),ctrl_pdata); bl_level_old = bl_level; #endif break; default: pr_err("%s: Unknown bl_ctrl configuration\n", __func__); break; } }