static void lm3630_set_main_current_level(struct i2c_client *client, int level)
{
    struct lm3630_device *dev = i2c_get_clientdata(client);
    int min_brightness = dev->min_brightness;
    int max_brightness = dev->max_brightness;

    if (level == -BOOT_BRIGHTNESS)
        level = dev->default_brightness;

    cur_main_lcd_level = level;
    dev->bl_dev->props.brightness = cur_main_lcd_level;

    store_level_used = 0;

    mutex_lock(&dev->bl_mutex);

#if defined(CONFIG_MACH_LGE) && !defined(CONFIG_MACH_MSM8974_VU3_KR) && !defined(CONFIG_MACH_MSM8974_Z_KR) && !defined(CONFIG_MACH_MSM8974_Z_US) && !defined(CONFIG_OLED_SUPPORT)
    if (level < PWM_THRESHOLD)
        bl_set_pwm_mode(PWM_OFF);
    else
        bl_set_pwm_mode(PWM_ON);
#endif

    if (level != 0) {
        if (level > 0 && level <= min_brightness)
            level = min_brightness;
        else if (level > max_brightness)
            level = max_brightness;

        if (dev->blmap) {
            if (level < dev->blmap_size) {
                cal_value = dev->blmap[level];
                lm3630_write_reg(client, 0x03,
                                 cal_value);
            } else
                dev_warn(&client->dev, "invalid index %d:%d\n",
                         dev->blmap_size,
                         level);
        } else {
            cal_value = level;
            lm3630_write_reg(client, 0x03, cal_value);
        }
    } else
        lm3630_write_reg(client, 0x00, 0x00);

    mutex_unlock(&dev->bl_mutex);

#ifdef CONFIG_MACH_MSM8974_VU3_KR
    pr_info("[LCD][DEBUG] %s : backlight level=%d, cal_value=%d \n",
            __func__, level, cal_value);
#else
    pr_debug("[LCD][DEBUG] %s : backlight level=%d, cal_value=%d \n",
             __func__, level, cal_value);
#endif

}
Example #2
0
static void lm3630_set_main_current_level(struct i2c_client *client, int level)
{
	struct lm3630_device *dev = i2c_get_clientdata(client);
	int min_brightness = dev->min_brightness;
	int max_brightness = dev->max_brightness;

	cur_main_lcd_level = level;
	dev->bl_dev->props.brightness = cur_main_lcd_level;

	store_level_used = 0;

	mutex_lock(&dev->bl_mutex);

#if defined(CONFIG_B1_LGD_PANEL)
	if(factory_boot)
		level = min_brightness;
#endif
#if defined(CONFIG_G2_LGD_PANEL) || defined(CONFIG_B1_LGD_PANEL)
	if (level < PWM_THRESHOLD)
		bl_set_pwm_mode(PWM_OFF);
	else
		bl_set_pwm_mode(PWM_ON);
#endif

	if (level != 0) {
		if (level > 0 && level <= min_brightness)
			level = min_brightness;
		else if (level > max_brightness)
			level = max_brightness;

		if (dev->blmap) {
			if (level < dev->blmap_size) {
				cal_value = dev->blmap[level];
				lm3630_write_reg(client, 0x03,
						cal_value);
			} else
				dev_warn(&client->dev, "invalid index %d:%d\n",
						dev->blmap_size,
						level);
		} else {
			cal_value = level;
			lm3630_write_reg(client, 0x03, cal_value);
		}
	} else
		lm3630_write_reg(client, 0x00, 0x00);

	mutex_unlock(&dev->bl_mutex);

	pr_info("%s : backlight level=%d, cal_value=%d \n",
				__func__, level, cal_value);
}