git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'fix/hda' of git://github.com/tiwai/sound
[pandora-kernel.git]
/
arch
/
mips
/
alchemy
/
devboards
/
bcsr.c
diff --git
a/arch/mips/alchemy/devboards/bcsr.c
b/arch/mips/alchemy/devboards/bcsr.c
index
f91c43a
..
463d2c4
100644
(file)
--- a/
arch/mips/alchemy/devboards/bcsr.c
+++ b/
arch/mips/alchemy/devboards/bcsr.c
@@
-89,8
+89,12
@@
static void bcsr_csc_handler(unsigned int irq, struct irq_desc *d)
{
unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT);
{
unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT);
+ disable_irq_nosync(irq);
+
for ( ; bisr; bisr &= bisr - 1)
generic_handle_irq(bcsr_csc_base + __ffs(bisr));
for ( ; bisr; bisr &= bisr - 1)
generic_handle_irq(bcsr_csc_base + __ffs(bisr));
+
+ enable_irq(irq);
}
/* NOTE: both the enable and mask bits must be cleared, otherwise the
}
/* NOTE: both the enable and mask bits must be cleared, otherwise the
@@
-142,8
+146,8
@@
void __init bcsr_init_irq(int csc_start, int csc_end, int hook_irq)
bcsr_csc_base = csc_start;
for (irq = csc_start; irq <= csc_end; irq++)
bcsr_csc_base = csc_start;
for (irq = csc_start; irq <= csc_end; irq++)
-
set_irq
_chip_and_handler_name(irq, &bcsr_irq_type,
- handle_level_irq, "level");
+
irq_set
_chip_and_handler_name(irq, &bcsr_irq_type,
+
handle_level_irq, "level");
-
set_irq
_chained_handler(hook_irq, bcsr_csc_handler);
+
irq_set
_chained_handler(hook_irq, bcsr_csc_handler);
}
}