static ssize_t mipi_samsung_disp_set_power(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { struct msm_fb_data_type *mfd; unsigned int power; mfd = platform_get_drvdata(msd.msm_pdev); if (sscanf(buf, "%u", &power) != 1) return -EINVAL; if (power == mfd->panel_power_on) return 0; if (power) { mfd->fbi->fbops->fb_blank(FB_BLANK_UNBLANK, mfd->fbi); mfd->fbi->fbops->fb_pan_display(&mfd->fbi->var, mfd->fbi); mipi_samsung_disp_send_cmd(mfd, PANEL_LATE_ON, true); mipi_samsung_disp_backlight(mfd); } else { mfd->fbi->fbops->fb_blank(FB_BLANK_POWERDOWN, mfd->fbi); } pr_info("mipi_samsung_disp_set_power\n"); return size; }
static ssize_t mipi_samsung_disp_backlight_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { struct msm_fb_data_type *mfd; int level = atoi(buf); mfd = platform_get_drvdata(msd.msm_pdev); mfd->bl_level = level; if (mfd->resume_state == MIPI_RESUME_STATE) { mipi_samsung_disp_backlight(mfd); pr_info("%s : level (%d)\n",__func__,level); } else { pr_info("%s : panel is off state!!\n", __func__); } return size; }
static ssize_t mipi_samsung_auto_brightness_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { static int first_auto_br; struct msm_fb_data_type *mfd; mfd = platform_get_drvdata(msd.msm_pdev); if (sysfs_streq(buf, "0")) msd.dstat.auto_brightness = 0; else if (sysfs_streq(buf, "1")) msd.dstat.auto_brightness = 1; else if (sysfs_streq(buf, "2")) msd.dstat.auto_brightness = 2; else if (sysfs_streq(buf, "3")) msd.dstat.auto_brightness = 3; else if (sysfs_streq(buf, "4")) msd.dstat.auto_brightness = 4; else if (sysfs_streq(buf, "5")) msd.dstat.auto_brightness = 5; else if (sysfs_streq(buf, "6")) // HBM mode (HBM + PSRE) will be changed to // leve 6 : no HBM , RE msd.dstat.auto_brightness = 6; else if (sysfs_streq(buf, "7")) // HBM mode (HBM + PSRE) msd.dstat.auto_brightness = 7; else pr_info("%s: Invalid argument!!", __func__); if (!first_auto_br) { pr_info("%s : skip first auto brightness store (%d) (%d)!!\n", __func__, msd.dstat.auto_brightness, mfd->bl_level); first_auto_br++; return size; } if (mfd->resume_state == MIPI_RESUME_STATE) { msd.mpd->first_bl_hbm_psre = 1; mipi_samsung_disp_backlight(mfd); pr_info("%s : %d\n",__func__,msd.dstat.auto_brightness); } else { msd.mpd->first_bl_hbm_psre = 0; pr_info("%s : panel is off state!!\n", __func__); } return size; }
static int mipi_samsung_disp_set_power(struct lcd_device *dev, int power) { struct msm_fb_data_type *mfd; mfd = platform_get_drvdata(msd.msm_pdev); if (power == mfd->panel_power_on) return 0; if (power) { mfd->fbi->fbops->fb_blank(FB_BLANK_UNBLANK, mfd->fbi); mfd->fbi->fbops->fb_pan_display(&mfd->fbi->var, mfd->fbi); mipi_samsung_disp_send_cmd(mfd, PANEL_LATE_ON, true); mipi_samsung_disp_backlight(mfd); } else { mfd->fbi->fbops->fb_blank(FB_BLANK_POWERDOWN, mfd->fbi); } pr_info("mipi_samsung_disp_set_power : %d\n", power ); return 0; }
static void mipi_samsung_disp_late_resume(struct early_suspend *h) { struct msm_fb_data_type *mfd; #if defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_CMD_QHD_PT) \ || defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_WVGA_PT) \ || defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_HD_PT) is_negativeMode_on(); #endif mfd = platform_get_drvdata(msd.msm_pdev); if (unlikely(!mfd)) { pr_info("%s NO PDEV.\n", __func__); return; } if (unlikely(mfd->key != MFD_KEY)) { pr_info("%s MFD_KEY is not matched.\n", __func__); return; } #if defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_CMD_QHD_PT) \ || defined(CONFIG_FB_MSM_MIPI_MAGNA_OLED_VIDEO_WVGA_PT) reset_gamma_level(); mfd->resume_state = MIPI_RESUME_STATE; mipi_samsung_disp_backlight(mfd); #endif #if defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_HD_PT) \ || defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_WVGA_PT) \ || defined(CONFIG_FB_MSM_MIPI_MAGNA_OLED_VIDEO_QHD_PT) \ || defined(CONFIG_FB_MSM_MIPI_MAGNA_OLED_VIDEO_WVGA_PT) mfd->resume_state = MIPI_RESUME_STATE; #endif #if !defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_HD_PT) && \ !defined(CONFIG_FB_MSM_MIPI_MAGNA_OLED_VIDEO_QHD_PT) && \ !defined(CONFIG_FB_MSM_MIPI_MAGNA_OLED_VIDEO_WVGA_PT) && \ !defined(CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_WVGA_PT) mipi_samsung_disp_send_cmd(mfd, PANEL_LATE_ON, true); #endif pr_info("%s", __func__); }
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; }