android/device/softwinner/ceres-c3/ceres_c3.mk
.. .. @@ -333,7 +333,7 @@ 333 333 334 334 # holding wake lock 335 335 PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ 336 - persist.sys.kickpi_holding_wakelock=true336 + persist.sys.kickpi_holding_wakelock=false337 337 338 338 # stoarge 339 339 PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/de/disp_lcd.c
.. .. @@ -15,6 +15,7 @@ 15 15 * 16 16 */ 17 17 #include "disp_lcd.h" 18 +#include <linux/delay.h>18 19 19 20 struct disp_lcd_private_data 20 21 { .. .. @@ -754,6 +755,14 @@ 754 755 ret = disp_sys_script_get_item(primary_key, sub_name, (int *)lcd_cfg->lcd_pin_power[i], 2); 755 756 } 756 757 758 + sprintf(sub_name, "lcd_pwm_max_limit");759 + ret = disp_sys_script_get_item(primary_key, sub_name, &value, 1);760 + if (ret == 1) {761 + lcd_cfg->lcd_pwm_max_limit = value;762 + } else {763 + lcd_cfg->lcd_pwm_max_limit = 255;764 + }765 +757 766 #ifdef __LINUX_PLAT__ 758 767 //backlight adjust 759 768 for (i = 0; i < 101; i++) { .. .. @@ -761,12 +770,12 @@ 761 770 lcd_cfg->backlight_curve_adjust[i] = 0; 762 771 763 772 if (i == 100) 764 - lcd_cfg->backlight_curve_adjust[i] = 255;773 + lcd_cfg->backlight_curve_adjust[i] = lcd_cfg->lcd_pwm_max_limit;765 774 766 775 ret = disp_sys_script_get_item(primary_key, sub_name, &value, 1); 767 776 if (ret == 1) { 768 777 value = (value > 100)? 100:value; 769 - value = value * 255 / 100;778 + value = value * lcd_cfg->lcd_pwm_max_limit / 100;770 779 lcd_cfg->backlight_curve_adjust[i] = value; 771 780 } 772 781 } .. .. @@ -774,7 +783,7 @@ 774 783 sprintf(sub_name, "lcd_backlight"); 775 784 ret = disp_sys_script_get_item(primary_key, sub_name, &value, 1); 776 785 if (ret == 1) { 777 - value = (value > 256)? 256:value;786 + value = (value > lcd_cfg->lcd_pwm_max_limit)? lcd_cfg->lcd_pwm_max_limit:value;778 787 lcd_cfg->backlight_bright = value; 779 788 } else { 780 789 lcd_cfg->backlight_bright = 197; longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/de/disp_lcd.h
.. .. @@ -55,6 +55,7 @@ 55 55 u32 lcd_contrast; 56 56 u32 lcd_saturation; 57 57 u32 lcd_hue; 58 + u32 lcd_pwm_max_limit;58 59 }disp_lcd_cfg; 59 60 60 61 s32 disp_init_lcd(disp_bsp_init_para * para); longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c
.. .. @@ -456,19 +456,27 @@ 456 456 2); 457 457 } 458 458 459 + sprintf(sub_name, "lcd_pwm_max_limit");460 + ret = disp_sys_script_get_item(primary_key, sub_name, &value, 1);461 + if (ret == 1) {462 + lcd_cfg->lcd_pwm_max_limit = value;463 + } else {464 + lcd_cfg->lcd_pwm_max_limit = 255;465 + }466 +459 467 /* backlight adjust */ 460 468 for (i = 0; i < 101; i++) { 461 469 sprintf(sub_name, "lcd_bl_%d_percent", i); 462 470 lcd_cfg->backlight_curve_adjust[i] = 0; 463 471 464 472 if (i == 100) 465 - lcd_cfg->backlight_curve_adjust[i] = 255;473 + lcd_cfg->backlight_curve_adjust[i] = lcd_cfg->lcd_pwm_max_limit;466 474 467 475 ret = 468 476 disp_sys_script_get_item(primary_key, sub_name, &value, 1); 469 477 if (ret == 1) { 470 478 value = (value > 100) ? 100 : value; 471 - value = value * 255 / 100;479 + value = value * lcd_cfg->lcd_pwm_max_limit / 100;472 480 lcd_cfg->backlight_curve_adjust[i] = value; 473 481 } 474 482 } .. .. @@ -476,7 +484,7 @@ 476 484 sprintf(sub_name, "lcd_backlight"); 477 485 ret = disp_sys_script_get_item(primary_key, sub_name, &value, 1); 478 486 if (ret == 1) { 479 - value = (value > 256) ? 256 : value;487 + value = (value > lcd_cfg->lcd_pwm_max_limit) ? lcd_cfg->lcd_pwm_max_limit : value;480 488 lcd_cfg->backlight_bright = value; 481 489 } else { 482 490 lcd_cfg->backlight_bright = 197; longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.h
.. .. @@ -55,6 +55,7 @@ 55 55 u32 lcd_contrast; 56 56 u32 lcd_saturation; 57 57 u32 lcd_hue; 58 + u32 lcd_pwm_max_limit;58 59 }; 59 60 60 61 s32 disp_init_lcd(struct disp_bsp_init_para *para);