summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/target/firmware/abb/twl3025.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/target/firmware/abb/twl3025.c b/src/target/firmware/abb/twl3025.c
index 2e06199c..e4fcf4f0 100644
--- a/src/target/firmware/abb/twl3025.c
+++ b/src/target/firmware/abb/twl3025.c
@@ -31,6 +31,7 @@
#include <calypso/tsp.h>
#include <calypso/tpu.h>
#include <abb/twl3025.h>
+#include <asm/system.h>
/* TWL3025 */
#define REG_PAGE(n) (n >> 7)
@@ -186,6 +187,13 @@ static void twl3025_wait_ibic_access(void)
void twl3025_power_off(void)
{
+ unsigned long flags;
+
+ /* turn off all IRQs, since received frames cannot be
+ * handled form here. (otherwise the message allocation
+ * runs out of memory) */
+ local_firq_save(flags);
+
/* poll PWON status and power off the phone when the
* powerbutton has been released (otherwise it will
* poweron immediately again) */