On Tue, 28 Sep 2010 14:45:59 +0200, Sergei Shtylyov <sshtylyov@xxxxxxxxxx> wrote:
Hello.
On 28-09-2010 5:31, Kukjin Kim wrote:
From: Changhwan Youn<chaos.youn@xxxxxxxxxxx>
It is reported by Junseok Jung that using clz instruction is
better instead of using for-loop to find the interrupt source.
This patch modifies interrupt source searching code using __fls().
The __fls() is implemented using clz instruction.
Suggested-by: Junseok Jung<jundols.jung@xxxxxxxxxxx>
Signed-off-by: Changhwan Youn<chaos.youn@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim<kgene.kim@xxxxxxxxxxx>
---
arch/arm/mach-s5pv310/irq-combiner.c | 6 +-----
1 files changed, 1 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-s5pv310/irq-combiner.c b/arch/arm/mach-s5pv310/irq-combiner.c
index 0f70521..39e3647 100644
--- a/arch/arm/mach-s5pv310/irq-combiner.c
+++ b/arch/arm/mach-s5pv310/irq-combiner.c
@@ -66,11 +66,7 @@ static void combiner_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
if (status == 0)
goto out;
- for (combiner_irq = 0; combiner_irq< 32; combiner_irq++) {
- if (status & 0x1)
- break;
- status>>= 1;
- }
+ combiner_irq = __fls(status);
But the loop finds the *first* set bit, not the last...
__ffs than?
--
Best regards, _ _
| Humble Liege of Serenely Enlightened Majesty of o' \,=./ `o
| Computer Science, MichaÅ "mina86" Nazarewicz (o o)
+----[mina86*mina86.com]---[mina86*jabber.org]----ooO--(_)--Ooo--
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html