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); }
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); }
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; }