summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-05-11 21:44:04 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-05-11 21:44:04 +0000
commite48a45a11ab05dae0cfc58edc0baddabd3170638 (patch)
tree1469c29ffbb208affcd8a36710b638afe8753a75 /firmware
parentbb69a59a971b65441589f2ac5f3d258148af1d3f (diff)
downloadrockbox-e48a45a11ab05dae0cfc58edc0baddabd3170638.tar.gz
rockbox-e48a45a11ab05dae0cfc58edc0baddabd3170638.zip
The set_irq_level function was braindead
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@545 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/kernel.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/firmware/kernel.c b/firmware/kernel.c
index b0c28e56dc..8474126a0d 100644
--- a/firmware/kernel.c
+++ b/firmware/kernel.c
@@ -53,21 +53,13 @@ void yield(void)
53/**************************************************************************** 53/****************************************************************************
54 * Interrupt level setting 54 * Interrupt level setting
55 ****************************************************************************/ 55 ****************************************************************************/
56static int current_irq_level = 15;
57
58int set_irq_level(int level) 56int set_irq_level(int level)
59{ 57{
60 int old; 58 int i;
61 59 /* Read the old level and set the new one */
62 /* First raise to highest level and update the shadow */ 60 asm volatile ("stc sr, %0" : "=r" (i));
63 asm volatile ("ldc %0, sr" : : "r" (15<<4)); 61 asm volatile ("ldc %0, sr" : : "r" (level << 4));
64 old = current_irq_level; 62 return (i >> 4) & 0x0f;
65 current_irq_level = level;
66
67 /* Then set the wanted level */
68 asm volatile ("ldc %0, sr" : : "r" ((unsigned int)level<<4));
69
70 return ((unsigned int)old >> 4) & 0x0f;
71} 63}
72 64
73/**************************************************************************** 65/****************************************************************************