summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2017-08-27 15:53:22 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2017-08-27 17:33:29 +0200
commit7ce764cdc3fc8ce40c81097ca61602cfc61885f5 (patch)
tree26c40a0ee0ad5a1fed27beb40ce01a626eb31dd0 /firmware
parentb13f6e5b67abda2e466731f39d221eec2c9eb576 (diff)
downloadrockbox-7ce764cdc3fc8ce40c81097ca61602cfc61885f5.tar.gz
rockbox-7ce764cdc3fc8ce40c81097ca61602cfc61885f5.zip
zen/zenxfi: fix backlight white flash on backlight on
Change-Id: If028a208bd10f46dbe25e4aade085ba7ba13d7be
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/imx233/creative-zen/backlight-zen.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/firmware/target/arm/imx233/creative-zen/backlight-zen.c b/firmware/target/arm/imx233/creative-zen/backlight-zen.c
index ef2ab615a5..7d99092e2f 100644
--- a/firmware/target/arm/imx233/creative-zen/backlight-zen.c
+++ b/firmware/target/arm/imx233/creative-zen/backlight-zen.c
@@ -27,6 +27,7 @@
27#include "uartdbg-imx233.h" 27#include "uartdbg-imx233.h"
28#include "pinctrl-imx233.h" 28#include "pinctrl-imx233.h"
29#include "pwm-imx233.h" 29#include "pwm-imx233.h"
30#include "kernel.h"
30 31
31void backlight_hw_brightness(int level) 32void backlight_hw_brightness(int level)
32{ 33{
@@ -37,15 +38,9 @@ void backlight_hw_brightness(int level)
37 lcd_set_contrast(level); 38 lcd_set_contrast(level);
38#else 39#else
39 unsigned val = (level + 200) * level / 1000; 40 unsigned val = (level + 200) * level / 1000;
40 if(level != 0) 41 for(unsigned mask = 0x10; mask; mask >>= 1)
41 { 42 imx233_uartdbg_send((val & mask) ? 0xff : 0xf8);
42 for(unsigned mask = 0x10; mask; mask >>= 1) 43 imx233_uartdbg_send(0);
43 imx233_uartdbg_send((val & mask) ? 0xff : 0xf8);
44 imx233_uartdbg_send(0);
45 imx233_pinctrl_set_gpio(1, 12, true);
46 }
47 else
48 imx233_pinctrl_set_gpio(1, 12, false);
49#endif 44#endif
50} 45}
51 46
@@ -64,7 +59,9 @@ void backlight_hw_on(void)
64{ 59{
65#ifdef HAVE_LCD_ENABLE 60#ifdef HAVE_LCD_ENABLE
66 lcd_enable(true); /* power on lcd + visible display */ 61 lcd_enable(true); /* power on lcd + visible display */
62 sleep(HZ / 10); /* make sure screen is not white anymore */
67#endif 63#endif
64 imx233_pinctrl_set_gpio(1, 12, true);
68 /* restore the previous backlight level */ 65 /* restore the previous backlight level */
69 backlight_hw_brightness(backlight_brightness); 66 backlight_hw_brightness(backlight_brightness);
70} 67}
@@ -73,6 +70,7 @@ void backlight_hw_off(void)
73{ 70{
74 /* there is no real on/off but we can set to 0 brightness */ 71 /* there is no real on/off but we can set to 0 brightness */
75 backlight_hw_brightness(0); 72 backlight_hw_brightness(0);
73 imx233_pinctrl_set_gpio(1, 12, false);
76#ifdef HAVE_LCD_ENABLE 74#ifdef HAVE_LCD_ENABLE
77 lcd_enable(false); /* power off visible display */ 75 lcd_enable(false); /* power off visible display */
78#endif 76#endif