diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2006-07-25 15:21:31 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2006-07-25 15:21:31 +0000 |
commit | f18f9a806142f96f435480473796e12b4a11e7b4 (patch) | |
tree | ea05323a5695ea0d4ff7cf5d3094dbf8a6a2b167 /firmware/backlight.c | |
parent | 8bb4bab54b580b36d819e4e4fcc864a3335ef270 (diff) | |
download | rockbox-f18f9a806142f96f435480473796e12b4a11e7b4.tar.gz rockbox-f18f9a806142f96f435480473796e12b4a11e7b4.zip |
Patch FS#5712 by Michael Sevakis - X5 Backlight brightness improvement/fix
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10322 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/backlight.c')
-rw-r--r-- | firmware/backlight.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/firmware/backlight.c b/firmware/backlight.c index 8285ff894b..1e72c6a81d 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c | |||
@@ -659,28 +659,26 @@ bool is_remote_backlight_on(void) {return true;} | |||
659 | void backlight_set_brightness(int val) | 659 | void backlight_set_brightness(int val) |
660 | { | 660 | { |
661 | #ifndef SIMULATOR | 661 | #ifndef SIMULATOR |
662 | /* set H300 brightness by changing the PWM | 662 | /* set brightness by changing the PWM |
663 | accepts 0..15 but note that 0 and 1 give a black display! */ | 663 | * accepts 0..15 but note that 0 and 1 give a black display on H300! |
664 | * 0 is black on the X5. | ||
665 | */ | ||
664 | 666 | ||
665 | /* disable IRQs while bitbanging */ | 667 | /* disable IRQs while bitbanging */ |
666 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | 668 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); |
667 | 669 | ||
668 | val &= 0x0F; | 670 | /* Clamp setting to range */ |
669 | if(val<MIN_BRIGHTNESS_SETTING) | 671 | if(val<MIN_BRIGHTNESS_SETTING) |
670 | val=MIN_BRIGHTNESS_SETTING; | 672 | val=MIN_BRIGHTNESS_SETTING; |
673 | else if(val>MAX_BRIGHTNESS_SETTING) | ||
674 | val=MAX_BRIGHTNESS_SETTING; | ||
671 | 675 | ||
672 | /* shift one bit left */ | 676 | pcf50606_write(0x35, (val << 1) | 0x01); /* 512Hz, Enable PWM */ |
673 | val <<= 1; | ||
674 | |||
675 | /* enable PWM */ | ||
676 | val |= 0x01; | ||
677 | |||
678 | pcf50606_write(0x35, val); | ||
679 | 677 | ||
680 | /* enable IRQs again */ | 678 | /* enable IRQs again */ |
681 | set_irq_level(old_irq_level); | 679 | set_irq_level(old_irq_level); |
682 | #else | 680 | #else |
683 | val=0; | 681 | val=0; |
684 | #endif | 682 | #endif |
685 | } | 683 | } |
686 | #endif | 684 | #endif |