static void mdss_panel_tft_outdoormode_update(struct mdss_dsi_ctrl_pdata *ctrl) { struct samsung_display_driver_data *vdd = check_valid_ctrl(ctrl); if (IS_ERR_OR_NULL(vdd)) { pr_err("%s: Invalid data ctrl : 0x%zx vdd : 0x%zx", __func__, (size_t)ctrl, (size_t)vdd); return; } pr_info("%s: tft panel autobrightness update\n", __func__); switch(vdd->auto_brightness) { case 0: mdss_samsung_cabc_update(); if(vdd->prev_auto_brightness == 6) vdd->panel_func.samsung_bl_ic_outdoor(0); break; case 1: case 2: case 3: case 4: mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_ON); if(vdd->prev_auto_brightness == 6) vdd->panel_func.samsung_bl_ic_outdoor(0); break; case 5: mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_OFF); if(vdd->prev_auto_brightness == 6) vdd->panel_func.samsung_bl_ic_outdoor(0); break; case 6: mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_OFF); vdd->panel_func.samsung_bl_ic_outdoor(1); break; } vdd->prev_auto_brightness = vdd->auto_brightness; }
static int mdss_panel_on_post(struct mdss_dsi_ctrl_pdata *ctrl) { struct samsung_display_driver_data *vdd = check_valid_ctrl(ctrl); if (IS_ERR_OR_NULL(vdd)) { pr_err("%s: Invalid data ctrl : 0x%zx vdd : 0x%zx", __func__, (size_t)ctrl, (size_t)vdd); return false; } pr_info("%s %d\n", __func__, ctrl->ndx); if(ctrl->bklt_ctrl == BL_DCS_CMD) ktd3102_set_led_current(5,ctrl); /* set max current to "6"/19.8mA, only when CABC is enabled */ if(vdd->support_cabc) mdss_samsung_cabc_update(); if(ctrl->bklt_ctrl == BL_DCS_CMD && is_first_boot){ mdss_samsung_brightness_dcs(ctrl, LCD_DEFAUL_BL_LEVEL); is_first_boot = 0; } return true; }
static void backlight_tft_late_on(struct mdss_dsi_ctrl_pdata *ctrl) { struct samsung_display_driver_data *vdd = check_valid_ctrl(ctrl); if (IS_ERR_OR_NULL(vdd)) { pr_err("%s: Invalid data ctrl : 0x%zx vdd : 0x%zx", __func__, (size_t)ctrl, (size_t)vdd); return; } if (!mdss_panel_attach_get(ctrl)) { pr_err("%s: mdss_panel_attach_get(%d) : %d\n",__func__, ctrl->ndx, mdss_panel_attach_get(ctrl)); return; } if (gpio_is_valid(vdd->dtsi_data[ctrl->ndx].backlight_tft_gpio[0])) { gpio_set_value(vdd->dtsi_data[ctrl->ndx].backlight_tft_gpio[0], 1); msleep(80); } if(ctrl->bklt_ctrl == BL_SS_PWM && is_first_boot){ if (vdd->panel_func.samsung_brightness_tft_pwm) vdd->panel_func.samsung_brightness_tft_pwm(ctrl,LCD_DEFAUL_BL_LEVEL); is_first_boot = 0; } pr_info("%s : Backlight is on\n", __func__); if(vdd->support_cabc) mdss_samsung_cabc_update(); }
static void mdss_panel_tft_outdoormode_update(struct mdss_dsi_ctrl_pdata *ctrl) { struct samsung_display_driver_data *vdd = check_valid_ctrl(ctrl); struct mdss_panel_info *pinfo = NULL; if (IS_ERR_OR_NULL(vdd)) { pr_err("%s: Invalid data ctrl : 0x%zx vdd : 0x%zx", __func__, (size_t)ctrl, (size_t)vdd); return; } pinfo = &(ctrl->panel_data.panel_info); if (pinfo->blank_state == MDSS_PANEL_BLANK_BLANK) { pr_info("%s: skip mdss_panel_tft_outdoormode_update %d\n", __func__, __LINE__); return; } pr_info("%s: tft panel autobrightness update\n", __func__); if(vdd->prev_auto_brightness == vdd->auto_brightness) return; switch(vdd->auto_brightness) { case 0: mdss_samsung_cabc_update(); if(vdd->prev_auto_brightness == 6) vdd->panel_func.samsung_bl_ic_outdoor(0); break; case 1: case 2: case 3: case 4: if(vdd->prev_auto_brightness && vdd->prev_auto_brightness < 5) { vdd->prev_auto_brightness = vdd->auto_brightness; return; } if(vdd->prev_auto_brightness == 6) vdd->panel_func.samsung_bl_ic_outdoor(0); vdd->prev_auto_brightness = vdd->auto_brightness; mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_OFF_DUTY); mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_ON); if(vdd->dtsi_data[ctrl->ndx].cabc_delay && !vdd->display_ststus_dsi[ctrl->ndx].disp_on_pre) usleep(vdd->dtsi_data[ctrl->ndx].cabc_delay); mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_ON_DUTY); break; case 5: mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_OFF_DUTY); mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_OFF); if(vdd->prev_auto_brightness == 6) vdd->panel_func.samsung_bl_ic_outdoor(0); break; case 6: mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_OFF_DUTY); mdss_samsung_send_cmd(vdd->ctrl_dsi[DISPLAY_1], PANEL_CABC_OFF); vdd->panel_func.samsung_bl_ic_outdoor(1); break; } vdd->prev_auto_brightness = vdd->auto_brightness; }
static int mdss_panel_on_post(struct mdss_dsi_ctrl_pdata *ctrl) { struct samsung_display_driver_data *vdd = check_valid_ctrl(ctrl); if (IS_ERR_OR_NULL(vdd)) { pr_err("%s: Invalid data ctrl : 0x%zx vdd : 0x%zx", __func__, (size_t)ctrl, (size_t)vdd); return false; } pr_info("%s %d\n", __func__, ctrl->ndx); mdss_samsung_cabc_update(); return true; }
static int mdss_panel_on_post(struct mdss_dsi_ctrl_pdata *ctrl) { struct samsung_display_driver_data *vdd = check_valid_ctrl(ctrl); if (IS_ERR_OR_NULL(vdd)) { pr_err("%s: Invalid data ctrl : 0x%zx vdd : 0x%zx", __func__, (size_t)ctrl, (size_t)vdd); return false; } pr_info("%s %d\n", __func__, ctrl->ndx); mdss_samsung_cabc_update(); if(is_first_boot){ if (ctrl->panel_data.set_backlight) ctrl->panel_data.set_backlight(&ctrl->panel_data, LCD_DEFAUL_BL_LEVEL); is_first_boot = 0; } return true; }