forked from len0rd/rockbox
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
This commit is contained in:
parent
fe1568a11c
commit
ccb52bd72c
2 changed files with 15 additions and 0 deletions
|
@ -30,6 +30,9 @@
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
#ifdef HAVE_BACKLIGHT
|
||||||
|
#include "backlight-target.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
static char panic_buf[128];
|
static char panic_buf[128];
|
||||||
#define LINECHARS (LCD_WIDTH/SYSFONT_WIDTH)
|
#define LINECHARS (LCD_WIDTH/SYSFONT_WIDTH)
|
||||||
|
@ -75,9 +78,14 @@ void panicf( const char *fmt, ...)
|
||||||
#else
|
#else
|
||||||
/* no LCD */
|
/* no LCD */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
lcd_update();
|
lcd_update();
|
||||||
DEBUGF("%s", panic_buf);
|
DEBUGF("%s", panic_buf);
|
||||||
|
|
||||||
|
#ifdef HAVE_BACKLIGHT
|
||||||
|
_backlight_on();
|
||||||
|
#endif
|
||||||
|
|
||||||
set_cpu_frequency(0);
|
set_cpu_frequency(0);
|
||||||
|
|
||||||
#ifdef HAVE_ATA_POWER_OFF
|
#ifdef HAVE_ATA_POWER_OFF
|
||||||
|
|
|
@ -23,6 +23,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
#include "font.h"
|
#include "font.h"
|
||||||
|
#ifdef HAVE_BACKLIGHT
|
||||||
|
#include "backlight-target.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
static const char* const uiename[] = {
|
static const char* const uiename[] = {
|
||||||
"Undefined instruction",
|
"Undefined instruction",
|
||||||
|
@ -48,6 +51,10 @@ void __attribute__((noreturn)) UIE(unsigned int pc, unsigned int num)
|
||||||
lcd_puts(0, 1, str);
|
lcd_puts(0, 1, str);
|
||||||
lcd_update();
|
lcd_update();
|
||||||
|
|
||||||
|
#ifdef HAVE_BACKLIGHT
|
||||||
|
_backlight_on();
|
||||||
|
#endif
|
||||||
|
|
||||||
disable_interrupt(IRQ_FIQ_STATUS);
|
disable_interrupt(IRQ_FIQ_STATUS);
|
||||||
|
|
||||||
system_exception_wait(); /* If this returns, try to reboot */
|
system_exception_wait(); /* If this returns, try to reboot */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue