Example #1
0
static void glacier_set_brightness(struct led_classdev *led_cdev,
				enum led_brightness val)
{
	struct msm_mddi_client_data *client = cabc.client_data;
	unsigned int shrink_br = val;

	printk(KERN_DEBUG "set brightness = %d\n", val);

	if (test_bit(GATE_ON, &cabc.status) == 0)
		return;

	if(panel_type == PANEL_SHARP)
		shrink_br = glacier_shrink_pwm(val, PWM_USER_DEF,
				PWM_USER_MIN, PWM_USER_MAX, PWM_SHARP_DEF,
				PWM_SHARP_MIN, PWM_SHARP_MAX);
	else
		shrink_br = glacier_shrink_pwm(val, PWM_USER_DEF,
				PWM_USER_MIN, PWM_USER_MAX, PWM_SONY_DEF,
				PWM_SONY_MIN, PWM_SONY_MAX);

	mutex_lock(&cabc.lock);
	if (glacier_set_dim == 1) {
		client->remote_write(client, 0x2C, 0x5300);
		/* we dont need set dim again */
		glacier_set_dim = 0;
	}
	client->remote_write(client, 0x00, 0x5500);
	client->remote_write(client, shrink_br, 0x5100);
	brightness_value = val;
	mutex_unlock(&cabc.lock);
}
static void glacier_set_brightness(struct led_classdev *led_cdev,
				enum led_brightness val)
{
	struct msm_mddi_client_data *client = cabc.client_data;
	unsigned int shrink_br = val;

	if (test_bit(GATE_ON, &cabc.status) == 0)
		return;

	if(panel_type == PANEL_SHARP)
		shrink_br = glacier_shrink_pwm(val, PWM_USER_DEF,
				PWM_USER_MIN, PWM_USER_MAX, PWM_SHARP_DEF,
				PWM_SHARP_MIN, PWM_SHARP_MAX);
	else
		shrink_br = glacier_shrink_pwm(val, PWM_USER_DEF,
				PWM_USER_MIN, PWM_USER_MAX, PWM_SONY_DEF,
				PWM_SONY_MIN, PWM_SONY_MAX);

	if (!client) {
		pr_info("null mddi client");
		return;
	}

	if (cabc.last_shrink_br == shrink_br) {
		pr_info("[BKL] identical shrink_br");
		return;
	}

	mutex_lock(&cabc.lock);

	if (glacier_set_dim == 1) {
		client->remote_write(client, 0x2C, 0x5300);
		/* we dont need set dim again */
		glacier_set_dim = 0;
	}
	client->remote_write(client, 0x00, 0x5500);
	client->remote_write(client, shrink_br, 0x5100);

	/* Update the last brightness */
	cabc.last_shrink_br = shrink_br;
	brightness_value = val;
	mutex_unlock(&cabc.lock);

	printk(KERN_INFO "set brightness to %d\n", shrink_br);
}