From: Changhwan Youn <chaos.y...@samsung.com>

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 __ffs().
The __ffs() is implemented using clz instruction.

Suggested-by: Junseok Jung <jundols.j...@samsung.com>
Signed-off-by: Changhwan Youn <chaos.y...@samsung.com>
Signed-off-by: Kukjin Kim <kgene....@samsung.com>
---
Changes since v1:
- Modified to ffs as per Troy Kisky's pointing out
  In this case, the ffs is more suitable according to original code.

 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..c3f88c3 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 = __ffs(status);
 
        cascade_irq = combiner_irq + (chip_data->irq_offset & ~31);
        if (unlikely(cascade_irq >= NR_IRQS))
-- 
1.6.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to