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 ssize_t accessibility_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { int cmd_value; char buffer[MDNIE_COLOR_BLINDE_CMD] = {0,}; int buffer2[MDNIE_COLOR_BLINDE_CMD/2] = {0,}; int loop; char temp; sscanf(buf, "%d %x %x %x %x %x %x %x %x %x", &cmd_value, &buffer2[0], &buffer2[1], &buffer2[2], &buffer2[3], &buffer2[4], &buffer2[5], &buffer2[6], &buffer2[7], &buffer2[8]); for(loop = 0; loop < MDNIE_COLOR_BLINDE_CMD/2; loop++) { buffer2[loop] = buffer2[loop] & 0xFFFF; buffer[loop * 2] = (buffer2[loop] & 0xFF00) >> 8; buffer[loop * 2 + 1] = buffer2[loop] & 0xFF; } for(loop = 0; loop < MDNIE_COLOR_BLINDE_CMD; loop+=2) { temp = buffer[loop]; buffer[loop] = buffer[loop + 1]; buffer[loop + 1] = temp; } if (cmd_value == NEGATIVE) { mdnie_tun_state.negative = mDNIe_NEGATIVE_ON; mdnie_tun_state.blind = ACCESSIBILITY_OFF; } else if (cmd_value == COLOR_BLIND) { mdnie_tun_state.negative = mDNIe_NEGATIVE_OFF; mdnie_tun_state.blind = COLOR_BLIND; #if defined (CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_QHD_PT)\ || defined(CONFIG_FB_MSM_MIPI_AMS367_OLED_VIDEO_WVGA_PT_PANEL) memcpy(&COLOR_BLIND_2[MDNIE_COLOR_BLINDE_CMD], buffer, MDNIE_COLOR_BLINDE_CMD); #elif defined (CONFIG_FB_MSM_MIPI_HIMAX_TFT_VIDEO_WVGA_PT) for (loop = 0; loop < MDNIE_COLOR_BLINDE_CMD; loop++){ COLOR_BLIND_2[28+loop] = buffer[MDNIE_COLOR_BLINDE_CMD - 1 - loop]; } #endif } else if (cmd_value == ACCESSIBILITY_OFF) { mdnie_tun_state.blind = ACCESSIBILITY_OFF; mdnie_tun_state.negative = mDNIe_NEGATIVE_OFF; } else pr_info("%s ACCESSIBILITY_MAX", __func__); is_negative_on(); pr_info("%s cmd_value : %d size : %d", __func__, cmd_value, size); return size; }
static ssize_t accessibility_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { int cmd_value; char buffer[MDNIE_COLOR_BLINDE_CMD] = {0,}; int buffer2[MDNIE_COLOR_BLINDE_CMD/2] = {0,}; int loop; char temp; struct msm_fb_data_type *mfd; mfd = mdnie_msd->mfd; sscanf(buf, "%d %x %x %x %x %x %x %x %x %x", &cmd_value, &buffer2[0], &buffer2[1], &buffer2[2], &buffer2[3], &buffer2[4], &buffer2[5], &buffer2[6], &buffer2[7], &buffer2[8]); for(loop = 0; loop < MDNIE_COLOR_BLINDE_CMD/2; loop++) { buffer2[loop] = buffer2[loop] & 0xFFFF; buffer[loop * 2] = (buffer2[loop] & 0xFF00) >> 8; buffer[loop * 2 + 1] = buffer2[loop] & 0xFF; } for(loop = 0; loop < MDNIE_COLOR_BLINDE_CMD; loop+=2) { temp = buffer[loop]; buffer[loop] = buffer[loop + 1]; buffer[loop + 1] = temp; } if (cmd_value == NEGATIVE) { mdnie_tun_state.negative = mDNIe_NEGATIVE_ON; mdnie_tun_state.blind = ACCESSIBILITY_OFF; } else if (cmd_value == COLOR_BLIND) { mdnie_tun_state.negative = mDNIe_NEGATIVE_OFF; mdnie_tun_state.blind = COLOR_BLIND; #if defined(CONFIG_FB_MSM_MDSS_HX8394C_TFT_VIDEO_720P_PANEL) memcpy(&COLOR_BLIND_4[22],buffer, MDNIE_COLOR_BLINDE_CMD); #else memcpy(&COLOR_BLIND_2[MDNIE_COLOR_BLINDE_CMD], buffer, MDNIE_COLOR_BLINDE_CMD); #endif } else if (cmd_value == ACCESSIBILITY_OFF) { mdnie_tun_state.blind = ACCESSIBILITY_OFF; mdnie_tun_state.negative = mDNIe_NEGATIVE_OFF; } else pr_info("%s ACCESSIBILITY_MAX", __func__); mutex_lock(&mfd->power_state); is_negative_on(); mutex_unlock(&mfd->power_state); pr_info("%s cmd_value : %d", __func__, cmd_value); return size; }
static ssize_t accessibility_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { int cmd_value; char buffer[MDNIE_COLOR_BLINDE_CMD] = {0,}; int buffer2[MDNIE_COLOR_BLINDE_CMD/2] = {0,}; int loop; char temp; sscanf(buf, "%d %x %x %x %x %x %x %x %x %x", &cmd_value, &buffer2[0], &buffer2[1], &buffer2[2], &buffer2[3], &buffer2[4], &buffer2[5], &buffer2[6], &buffer2[7], &buffer2[8]); for(loop = 0; loop < MDNIE_COLOR_BLINDE_CMD/2; loop++) { buffer2[loop] = buffer2[loop] & 0xFFFF; buffer[loop * 2] = (buffer2[loop] & 0xFF00) >> 8; buffer[loop * 2 + 1] = buffer2[loop] & 0xFF; } for(loop = 0; loop < MDNIE_COLOR_BLINDE_CMD; loop+=2) { temp = buffer[loop]; buffer[loop] = buffer[loop + 1]; buffer[loop + 1] = temp; } if (cmd_value == NEGATIVE) { mdnie_tun_state.negative = mDNIe_NEGATIVE_ON; mdnie_tun_state.blind = ACCESSIBILITY_OFF; } else if (cmd_value == COLOR_BLIND) { mdnie_tun_state.negative = mDNIe_NEGATIVE_OFF; mdnie_tun_state.blind = COLOR_BLIND; memcpy(&COLOR_BLIND_2[MDNIE_COLOR_BLINDE_CMD], buffer, MDNIE_COLOR_BLINDE_CMD); } else if (cmd_value == ACCESSIBILITY_OFF) { mdnie_tun_state.blind = ACCESSIBILITY_OFF; mdnie_tun_state.negative = mDNIe_NEGATIVE_OFF; } else pr_info("%s ACCESSIBILITY_MAX", __func__); is_negative_on(); pr_info("%s cmd_value : %d size : %d", __func__, cmd_value, size); return size; }
static ssize_t accessibility_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { int cmd_value; sscanf(buf, "%d", &cmd_value); if (cmd_value == NEGATIVE) { mdnie_tun_state.negative = mDNIe_NEGATIVE_ON; mdnie_tun_state.blind = ACCESSIBILITY_OFF; } else if (cmd_value == ACCESSIBILITY_OFF) { mdnie_tun_state.blind = ACCESSIBILITY_OFF; mdnie_tun_state.negative = mDNIe_NEGATIVE_OFF; } else pr_info("%s ACCESSIBILITY_MAX", __func__); is_negative_on(); return size; }
static int mipi_samsung_disp_on(struct platform_device *pdev) { struct msm_fb_data_type *mfd; struct mipi_panel_info *mipi; mfd = platform_get_drvdata(pdev); if (unlikely(!mfd)) return -ENODEV; if (unlikely(mfd->key != MFD_KEY)) return -EINVAL; mipi = &mfd->panel_info.mipi; msd.mpd->lcd_no = get_disp_switch(); if (!msd.dstat.is_smart_dim_loaded[msd.mpd->lcd_no]) { execute_panel_init(mfd); mfd->bl_level = DEFAULT_BL; msd.dstat.is_smart_dim_loaded[msd.mpd->lcd_no] = true; } if (get_auto_brightness() >= HBM_MODE_ID) msd.mpd->first_bl_hbm_psre = 1; mipi_samsung_disp_send_cmd(mfd, PANEL_ON, false); mfd->resume_state = MIPI_RESUME_STATE; #if defined(CONFIG_MDNIE_LITE_TUNING) is_negative_on(); #endif msd.mpd->rst_brightness = true; mipi_samsung_disp_backlight(mfd); pr_info("%s - [%d], id=0x%x\n", __func__, msd.mpd->lcd_no, msd.mpd->manufacture_id); return 0; }