//this API add for control the power and temperature //if enabe=1, the value of brightness will smaller than max_level, whatever lightservice transfers to driver int setMaxbrightness(int max_level, int enable) { #if !defined (MTK_AAL_SUPPORT) struct cust_mt65xx_led *cust_led_list = mt_get_cust_led_list(); mutex_lock(&bl_level_limit_mutex); if (1 == enable) { limit_flag = 1; limit = max_level; mutex_unlock(&bl_level_limit_mutex); //LEDS_DRV_DEBUG("[LED] setMaxbrightness limit happen and release lock!!\n"); //LEDS_DRV_DEBUG("setMaxbrightness enable:last_level=%d, current_level=%d\n", last_level, current_level); //if (limit < last_level){ if (0 != current_level){ if(limit < last_level){ LEDS_DRV_DEBUG("mt65xx_leds_set_cust in setMaxbrightness:value control start! limit=%d\n", limit); mt65xx_led_set_cust(&cust_led_list[MT65XX_LED_TYPE_LCD], limit); }else{ //LEDS_DRV_DEBUG("mt65xx_leds_set_cust in setMaxbrightness:value control start! last_level=%d\n", last_level); mt65xx_led_set_cust(&cust_led_list[MT65XX_LED_TYPE_LCD], last_level); } } } else { limit_flag = 0; limit = 255; mutex_unlock(&bl_level_limit_mutex); //LEDS_DRV_DEBUG("[LED] setMaxbrightness limit closed and and release lock!!\n"); //LEDS_DRV_DEBUG("setMaxbrightness disable:last_level=%d, current_level=%d\n", last_level, current_level); //if (last_level != 0){ if (0 != current_level){ LEDS_DRV_DEBUG("control temperature close:limit=%d\n", limit); mt65xx_led_set_cust(&cust_led_list[MT65XX_LED_TYPE_LCD], last_level); //printk("mt65xx_leds_set_cust in setMaxbrightness:value control close!\n"); } } //LEDS_DRV_DEBUG("[LED] setMaxbrightness limit_flag = %d, limit=%d, current_level=%d\n",limit_flag, limit, current_level); #else LEDS_DRV_DEBUG("setMaxbrightness go through AAL\n"); disp_bls_set_max_backlight(max_level); #endif //endif MTK_AAL_SUPPORT return 0; }
//this API add for control the power and temperature //if enabe=1, the value of brightness will smaller than max_level, whatever lightservice transfers to driver int setMaxbrightness(int max_level, int enable) { struct cust_mt65xx_led *cust_led_list = get_cust_led_list(); mutex_lock(&bl_level_limit_mutex); if (1 == enable) { limit_flag = 1; limit = max_level; mutex_unlock(&bl_level_limit_mutex); LEDS_DEBUG("[LED] setMaxbrightness limit happen and release lock!!\n"); printk("setMaxbrightness enable:last_level=%d\n", last_level); printk("setMaxbrightness enable:current_level=%d\n", current_level); //if (limit < last_level){ if (0 != current_level){ printk("mt65xx_leds_set_cust in setMaxbrightness:value control start! limit=%d\n", limit); mt65xx_led_set_cust(&cust_led_list[MT65XX_LED_TYPE_LCD], limit); } } else { limit_flag = 0; limit = 255; mutex_unlock(&bl_level_limit_mutex); LEDS_DEBUG("[LED] setMaxbrightness limit closed and and release lock!!\n"); printk("setMaxbrightness disable:last_level=%d\n", last_level); printk("setMaxbrightness enable:current_level=%d\n", current_level); //if (last_level != 0){ if (0 != current_level){ printk("control temperature close:limit=%d\n", limit); mt65xx_led_set_cust(&cust_led_list[MT65XX_LED_TYPE_LCD], last_level); //printk("mt65xx_leds_set_cust in setMaxbrightness:value control close!\n"); } } LEDS_DEBUG("[LED] setMaxbrightness limit_flag = %d, limit=%d, current_level=%d\n",limit_flag, limit, current_level); return 0; }
/**************************************************************************** * external functions ***************************************************************************/ int mt65xx_leds_brightness_set(enum mt65xx_led_type type, enum led_brightness level) { struct cust_mt65xx_led *cust_led_list = mt_get_cust_led_list(); LEDS_DRV_DEBUG("[LED]#%d:%d\n", type, level); if (type < 0 || type >= MT65XX_LED_TYPE_TOTAL) return -1; if (level > LED_FULL) level = LED_FULL; else if (level < 0) level = 0; return mt65xx_led_set_cust(&cust_led_list[type], level); }
int mt65xx_leds_brightness_set(enum mt65xx_led_type type, enum led_brightness level) { struct cust_mt65xx_led *cust_led_list = get_cust_led_list(); if (type < 0 || type >= MT65XX_LED_TYPE_TOTAL) return -1; if (level > LED_FULL) level = LED_FULL; else if (level < 0) level = 0; if (g_lastlevel[type] != level) { g_lastlevel[type] = level; printf("[LEDS]uboot: %s level is %d \n\r", cust_led_list[type].name, level); return mt65xx_led_set_cust(&cust_led_list[type], level); } else { return -1; } }