static ssize_t auto_brightness_store(struct device *dev,
	struct device_attribute *attr, const char *buf, size_t size)
{
	struct lcd_info *lcd = dev_get_drvdata(dev);
	int value;
	int rc;

	BLDBG("auto_brightness_store called\n");

	rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
	if (rc < 0)
		return rc;
	else {
		if (lcd->auto_brightness != value) {
			dev_info(dev, "%s - %d, %d\n", __func__,
					lcd->auto_brightness, value);
			lcd->auto_brightness = value;

			if (lcd->auto_brightness == 0) {
				cabc_status = 0;
				backlight_cabc_off();
			} else if (lcd->auto_brightness >= 1
					&& lcd->auto_brightness < 5) {
				cabc_status = 1;
				backlight_cabc_on();
			} else if (lcd->auto_brightness >= 5) {
				cabc_status = 0;
				backlight_cabc_off();
			}


		}
	}
	return size;
}
static void ktd_backlight_lateresume(struct early_suspend *desc)
{
	struct ktd_bl_data *ktd = container_of(desc, struct ktd_bl_data,
							early_suspend_desc);
	struct backlight_device *bl = platform_get_drvdata(ktd->pdev);
	struct timespec ts;
	struct rtc_time tm;


	getnstimeofday(&ts);
	rtc_time_to_tm(ts.tv_sec, &tm);
	backlight_mode = BACKLIGHT_RESUME;

#if CABC_FEATURE_ON
	if (cabc_status)
		backlight_cabc_on();
	else
		backlight_cabc_off();

#endif
	BLDBG("[%02d:%02d:%02d.%03lu][BACKLIGHT]  late resume\n",
		tm.tm_hour, tm.tm_min, tm.tm_sec, ts.tv_nsec);

        if(0 != bl->props.brightness)
	backlight_update_status(bl);
}
Beispiel #3
0
static void ktd259b_backlight_earlyresume(struct early_suspend *desc)
{
    struct ktd259b_bl_data *ktd259b = container_of(desc, struct ktd259b_bl_data,
                                                                          early_suspend_desc);
    struct backlight_device *bl = platform_get_drvdata(ktd259b->pdev);
    struct timespec ts;
    struct rtc_time tm;
#ifdef PWM_BRIGHTNESS    
    int temp_brightness = 0;
#endif   
    
    gpio_set_value(backlight_pwm,1);
    
#ifdef PWM_BRIGHTNESS 
    vc_display_bus_write(0,0x51,&temp_brightness,1);    
    mdelay(100);   
    lcd_backlight_control(5);
#endif
    
    getnstimeofday(&ts);
    rtc_time_to_tm(ts.tv_sec, &tm);
    backlight_mode=BACKLIGHT_RESUME;

     if(cabc_status)
     {
        backlight_cabc_on();
     }
     else
     {
        backlight_cabc_off();
     }
    
    printk("[%02d:%02d:%02d.%03lu][BACKLIGHT] earlyresume\n", tm.tm_hour, tm.tm_min, tm.tm_sec, ts.tv_nsec);
    backlight_update_status(bl);
}
Beispiel #4
0
static ssize_t auto_brightness_store(struct device *dev,
	struct device_attribute *attr, const char *buf, size_t size)
{
	struct lcd_info *lcd = dev_get_drvdata(dev);
	int value;
	int rc;

	printk("auto_brightness_store called\n");

	rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value);
	if (rc < 0)
		return rc;
	else {
		if (lcd->auto_brightness != value) {
			dev_info(dev, "%s - %d, %d\n", __func__, lcd->auto_brightness, value);
			//mutex_lock(&lcd->bl_lock);
			lcd->auto_brightness = value;
		//	mutex_unlock(&lcd->bl_lock);
			//if (lcd->ldi_enable)
				//update_brightness(lcd, 0);

			if(lcd->auto_brightness == 0)
			{
                        cabc_status = 0;
                        backlight_cabc_off();
			}
			else if(lcd->auto_brightness >= 1 && lcd->auto_brightness < 5)
			{
                        cabc_status = 1;
                        backlight_cabc_on();
			}
			else if(lcd->auto_brightness >= 5)
			{
                        cabc_status = 0;
                        backlight_cabc_off();
			}
            
			//backlight_update_CABC();
            
		}
	}
	return size; 
}