static int update_brightness(struct lcd_info *lcd, u8 force) { u32 brightness; mutex_lock(&lcd->bl_lock); brightness = lcd->bd->props.brightness; if (unlikely(!lcd->auto_brightness && brightness > 250)) brightness = 250; lcd->bl = get_backlight_level_from_brightness(brightness); if ((force) || ((lcd->ldi_enable) && (lcd->current_bl != lcd->bl))) { s6e8ax0_gamma_ctl(lcd); #ifdef CONFIG_AID_DIMMING s6e8ax0_aid_parameter_ctl(lcd, force); #endif s6e8ax0_set_acl(lcd, force); s6e8ax0_set_elvss(lcd, force); lcd->current_bl = lcd->bl; dev_info(&lcd->ld->dev, "brightness=%d, bl=%d, candela=%d\n", brightness, lcd->bl, candela_table[lcd->bl]); } mutex_unlock(&lcd->bl_lock); return 0; }
static ssize_t power_reduce_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; rc = strict_strtoul(buf, (unsigned int)0, (unsigned long *)&value); if (rc < 0) return rc; else { if (lcd->acl_enable != value) { dev_info(dev, "%s - %d, %d\n", __func__, lcd->acl_enable, value); mutex_lock(&lcd->bl_lock); lcd->acl_enable = value; if (lcd->ldi_enable) s6e8ax0_set_acl(lcd); mutex_unlock(&lcd->bl_lock); } } return size; }