[Armadeus-commitlog] armadeus branch, master, updated. armadeus-5.2-244-gefe2def
Brought to you by:
sszy
|
From: Fabien M <fa...@us...> - 2013-05-21 08:30:28
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via efe2defd79b16bd51642553f7b4128e8974fd9b1 (commit)
from 82b32b10a1c395fafc12eb2ee4882c0cd2a70ef7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit efe2defd79b16bd51642553f7b4128e8974fd9b1
Author: Fabien Marteau <fab...@ar...>
Date: Tue May 21 10:29:55 2013 +0200
[kernel][irq_ocore] Fix irq manager bug for FPGA
-----------------------------------------------------------------------
Summary of changes:
.../fpga/virtual_components/irq_mngr/main.c | 34 +++++++++++---------
1 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/target/linux/modules/fpga/virtual_components/irq_mngr/main.c b/target/linux/modules/fpga/virtual_components/irq_mngr/main.c
index 2d86bbd..26fa3d4 100644
--- a/target/linux/modules/fpga/virtual_components/irq_mngr/main.c
+++ b/target/linux/modules/fpga/virtual_components/irq_mngr/main.c
@@ -143,29 +143,33 @@ static irqreturn_t ocore_irq_mng_interrupt(int irq, void *data)
unsigned int mask;
mask = readw(mng->membase + FPGA_ISR);
- irq = IRQ_FPGA_START;
-
pr_debug("%s: mask:0x%04x\n", __FUNCTION__, mask);
+ do {
+ irq = IRQ_FPGA_START;
+
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,29)
- desc = irq_to_desc(irq);
+ desc = irq_to_desc(irq);
#else
- desc = irq_desc + irq;
+ desc = irq_desc + irq;
#endif
- /* handle irqs */
- while (mask) {
- if (mask & 1) {
- pr_debug("handling irq %d 0x%08x\n", irq,
- (unsigned int)desc);
+
+ /* handle irqs */
+ while (mask) {
+ if (mask & 1) {
+ pr_debug("handling irq %d 0x%08x\n", irq,
+ (unsigned int)desc);
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,39)
- desc->handle_irq(irq, desc);
+ desc->handle_irq(irq, desc);
#else
- desc_handle_irq(irq, desc);
+ desc_handle_irq(irq, desc);
#endif
+ }
+ irq++;
+ desc++;
+ mask >>= 1;
}
- irq++;
- desc++;
- mask >>= 1;
- }
+ mask = readw(mng->membase + FPGA_ISR);
+ } while (mask != 0);
return IRQ_HANDLED;
}
hooks/post-receive
--
armadeus
|