diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2008-03-26 01:50:41 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2008-03-26 01:50:41 +0000 |
commit | af395f4db6ad7b83f9d9afefb1c0ceeedd140a45 (patch) | |
tree | b631289b4a3b28d3c65b10d272d50298f377c69f /firmware/target/arm/ipod/video/lcd-video.c | |
parent | 74d678fdbcbc427c057e7682ba0a0566e49a8b97 (diff) |
Do core interrupt masking in a less general fashion and save some instructions to decrease size and speed things up a little bit. Small fix to a few places where interrupts would get enabled again where they shouldn't have been (context switching calls when disabled).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16811 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/ipod/video/lcd-video.c')
-rw-r--r-- | firmware/target/arm/ipod/video/lcd-video.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/firmware/target/arm/ipod/video/lcd-video.c b/firmware/target/arm/ipod/video/lcd-video.c index d0c82e905c..0e1b072917 100644 --- a/firmware/target/arm/ipod/video/lcd-video.c +++ b/firmware/target/arm/ipod/video/lcd-video.c @@ -110,7 +110,7 @@ static void bcm_setup_rect(unsigned x, unsigned y, #ifndef BOOTLOADER static void lcd_tick(void) { - /* No set_irq_level - already in interrupt context */ + /* No core level interrupt mask - already in interrupt context */ #if NUM_CORES > 1 corelock_lock(&lcd_state.cl); #endif @@ -143,7 +143,7 @@ static void lcd_tick(void) static inline void lcd_block_tick(void) { - int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); + int oldlevel = disable_irq_save(); #if NUM_CORES > 1 corelock_lock(&lcd_state.cl); @@ -152,14 +152,14 @@ static inline void lcd_block_tick(void) #else lcd_state.blocked = true; #endif - set_irq_level(oldlevel); + restore_irq(oldlevel); } static void lcd_unblock_and_update(void) { unsigned data; bool bcm_is_busy; - int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); + int oldlevel = disable_irq_save(); #if NUM_CORES > 1 corelock_lock(&lcd_state.cl); @@ -184,7 +184,7 @@ static void lcd_unblock_and_update(void) #if NUM_CORES > 1 corelock_unlock(&lcd_state.cl); #endif - set_irq_level(oldlevel); + restore_irq(oldlevel); } #else /* BOOTLOADER */ |