1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Michael Sevakis 2008-03-26 01:50:41 +00:00
parent 74d678fdbc
commit af395f4db6
61 changed files with 381 additions and 278 deletions

View file

@ -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 */