diff options
| author | Rob Purchase <shotofadds@rockbox.org> | 2009-07-25 18:23:06 +0000 |
|---|---|---|
| committer | Rob Purchase <shotofadds@rockbox.org> | 2009-07-25 18:23:06 +0000 |
| commit | ccb52bd72ca5caf9c78d7895dcb11bf489308c4d (patch) | |
| tree | 3b89f989e7130dc849cc8e7647da1d1d2b31df77 /firmware | |
| parent | fe1568a11c046c32b1ae7a3857b2a4c225492c56 (diff) | |
| download | rockbox-ccb52bd72ca5caf9c78d7895dcb11bf489308c4d.zip rockbox-ccb52bd72ca5caf9c78d7895dcb11bf489308c4d.tar.gz rockbox-ccb52bd72ca5caf9c78d7895dcb11bf489308c4d.tar.bz2 rockbox-ccb52bd72ca5caf9c78d7895dcb11bf489308c4d.tar.xz | |
Make the panic and UIE handlers turn on the backlight (needed for various colour LCDs that are unreadable without it). UIE is only changed on ARM for now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22034 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
| -rw-r--r-- | firmware/panic.c | 8 | ||||
| -rw-r--r-- | firmware/target/arm/system-arm.c | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/firmware/panic.c b/firmware/panic.c index 0223dc1..66b9e4d 100644 --- a/firmware/panic.c +++ b/firmware/panic.c @@ -30,6 +30,9 @@ #include "led.h" #include "power.h" #include "system.h" +#ifdef HAVE_BACKLIGHT +#include "backlight-target.h" +#endif static char panic_buf[128]; #define LINECHARS (LCD_WIDTH/SYSFONT_WIDTH) @@ -75,9 +78,14 @@ void panicf( const char *fmt, ...) #else /* no LCD */ #endif + lcd_update(); DEBUGF("%s", panic_buf); +#ifdef HAVE_BACKLIGHT + _backlight_on(); +#endif + set_cpu_frequency(0); #ifdef HAVE_ATA_POWER_OFF diff --git a/firmware/target/arm/system-arm.c b/firmware/target/arm/system-arm.c index 5c5a18c..7d38b17 100644 --- a/firmware/target/arm/system-arm.c +++ b/firmware/target/arm/system-arm.c @@ -23,6 +23,9 @@ #include <stdio.h> #include "lcd.h" #include "font.h" +#ifdef HAVE_BACKLIGHT +#include "backlight-target.h" +#endif static const char* const uiename[] = { "Undefined instruction", @@ -48,6 +51,10 @@ void __attribute__((noreturn)) UIE(unsigned int pc, unsigned int num) lcd_puts(0, 1, str); lcd_update(); +#ifdef HAVE_BACKLIGHT + _backlight_on(); +#endif + disable_interrupt(IRQ_FIQ_STATUS); system_exception_wait(); /* If this returns, try to reboot */ |